我在网站上设置了以下重写规则。我想设置它,所以我有以下不同的网址。
当前.htaccess
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteRule ^([^-]*)/$ ?action=$1 [L]
RewriteRule ^([^-]*)-([^-]*)/$ ?action=$1&id=$2 [L]
必填网址
www.site.com
www.site.com/page/
www.site.com/product-1234/
www.site.com/privacy-policy/
问题是第二次重写规则影响了privacy-polcy
网址,但不应该这样做,因为第二次重写规则仅适用于其中包含产品ID的产品页面。
我也试图忽略作为我网站结构存在的目录,所以在root下我有以下目录,我不希望重写规则影响,因为用户不应该知道这些目录的任何内容。
/system/
/tasks/
答案 0 :(得分:3)
# catch more specific urls:
RewriteRule ^product-([0-9]*)/$ ?action=product&id=$1 [L]
# ignore requests that want files or directories that do exist:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# then continue with the less specific:
RewriteRule ^([^/]*)/$ ?action=$1 [L]