我在网站上为索引页面完成了RewriteRule。
以下是代码:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^([a-zA-Z0-9+\-\(\)]+)/?$ /index.php?origin=$1
RewriteRule ^([a-zA-Z0-9+\-\(\)]+)/([a-zA-Z0-9+\-]+)/?$ /index.php?origin=$1&gender=$2
RewriteRule ^([a-zA-Z0-9+\-\(\)]+)/([a-zA-Z0-9+\-]+)/([a-zA-Z0-9+\-]+)/?$ /index.php?origin=$1&gender=$2&type=$3
RewriteRule ^([a-zA-Z0-9+\-\(\)]+)/([a-zA-Z0-9+\-]+)/([a-zA-Z0-9+\-]+)/([a-zA-Z0-9+\-]+)/?$ /index.php?origin=$1&gender=$2&type=$3&page=$4
</IfModule>
并且网址看起来像
http://babynames.agurchand.com/scottish/male/pythagorean
这是一个单页网站,所以到目前为止一切正常。 然后我想在我的网站上再添加一页,我也添加了。文件名是'namemeaning.php'。
我在底部添加了下面的代码以及粘贴的htaccess。但它似乎没有起作用。
RewriteRule ^/namemeaning/([a-zA-Z0-9+\-\(\)]+)/?$ /namemeaning/namemeaning.php?name=$1
我已尝试使用以下网址,但我仍然只被引用到索引页面。
http://babynames.agurchand.com/namemeaning/abasi
任何人都可以为我提供解决方案!
答案 0 :(得分:1)
您正被转发到索引页面,因为索引页面的正则表达式符合您的请求。你被发送到index.php?origin = namemeaning&amp; gender = abasi
http://babynames.agurchand.com/namemeaning/abasi
'namemeaning' fits the rule ([a-zA-Z0-9+\-\(\)]+)
'abasi' fits the rule ([a-zA-Z0-9+\-]+)
一个简单的解决方法是添加行
RewriteRule ^/namemeaning/([a-zA-Z0-9+\-\(\)]+)/?$ /namemeaning/namemeaning.php?name=$1
行以上
RewriteRule ^([a-zA-Z0-9+\-\(\)]+)/?$ /index.php?origin=$1
您应该记住始终将最具体的RewriteRule置于更一般的那些之上。
有关正则表达式的更多信息,我可以建议您this website。
答案 1 :(得分:0)
从上到下依次检查重新排序规则,并按顺序应用所有匹配的规则。仔细检查您的规则是否与所需规则匹配。 用于此目的的好工具是http://www.regextester.com/