mod_rewrite从某些URL中删除子目录

时间:2014-05-06 23:28:20

标签: apache mod-rewrite url-rewriting

我遇到的情况是我试图从某些URL中删除一个子目录。

这是我正在努力实现的目标

http://www.example.com/shop/some_product应该转到http://www.example.com/some_product

但是

我需要http://www.example.com/shop/customer/account保持不变。

基本上我需要重写任何 shop /...,除了 shop / customer /... shop / admin /...

这是我试过的

RewriteCond %{REQUEST_URI} !^/shop/customer
RewriteCond %{REQUEST_URI} !^/shop/admin
RewriteCond %{REQUEST_URI} !^/shop/sales
RewriteRule ^/shop/(.*) http://www.example.com/$1 [L]

这里有人有任何建议吗?

1 个答案:

答案 0 :(得分:0)

感谢arkascha。

原来我遇到了几个问题。以下是我最终的结果:

在/shop/.htaccess

RewriteCond %{REQUEST_URI} !^/shop/(media|skin|js|customer|admin|sales|checkout)/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /$1 [L]

我不需要重写与文件或目录匹配的URL。此外,似乎有/ shop /是RewriteCond的要求,但在RewriteRule中不起作用。