Regex 如何删除文件名和文件名?从url

Regex 如何删除文件名和文件名?从url,regex,apache,.htaccess,mod-rewrite,Regex,Apache,.htaccess,Mod Rewrite,我已经设法从url中删除了扩展名,并使用slug而不是product_代码查找它。我现在的问题是如何从url中删除?名称。例如 如果您愿意,最好是: 我的htaccess atm看起来像: Options +FollowSymLinks -MultiViews # Turn mod_rewrite on RewriteEngine On RewriteBase / ## hide .php extension # To externally redirect /dir/foo.php to

我已经设法从url中删除了扩展名,并使用slug而不是product_代码查找它。我现在的问题是如何从url中删除?名称。例如

如果您愿意,最好是:

我的htaccess atm看起来像:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]

## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]
非常感谢您的帮助。

添加更多规则:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} /product(?:\.php)?\?name=([^\s&]+) [NC]
RewriteRule ^ product=%1? [R=302,L,NE]

## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]

# internal forward from pretty URL to actual one
RewriteRule ^product=(.+)$ product?name=$1 [L,QSA,NC]

## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]

出现以下错误:未找到此服务器上未找到请求的URL/product=lanyards/domed ski pass holder。此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。好的,非常奇怪。在url()上做得很好,但是由于css/js中的相对路径,所有样式都消失了。为此,您可以将其添加到页面HTML的
部分: