.htaccess 具有htaccess的双重重写规则
我的规则有问题;我两个都放了,但只放第一个 我有两个不同信息的文件.htaccess 具有htaccess的双重重写规则,.htaccess,mod-rewrite,rewrite,.htaccess,Mod Rewrite,Rewrite,我的规则有问题;我两个都放了,但只放第一个 我有两个不同信息的文件 RewriteRule ^([A-Za-z0-9-]+)/?$ tour.php?tour=$1 [NC,L] RewriteRule ^([A-Za-z0-9-]+)/?$ programa.php?programa=$1 [NC,L] 只有第一种方法有效,因为用于匹配的模式完全相同:^([A-Za-z0-9-]+)/?$。您需要一些其他的东西来区分对tour.php的作用和对programa.php的作用。现在,如果有人输
RewriteRule ^([A-Za-z0-9-]+)/?$ tour.php?tour=$1 [NC,L]
RewriteRule ^([A-Za-z0-9-]+)/?$ programa.php?programa=$1 [NC,L]
只有第一种方法有效,因为用于匹配的模式完全相同:
^([A-Za-z0-9-]+)/?$
。您需要一些其他的东西来区分对tour.php的作用和对programa.php的作用。现在,如果有人输入http://youdomain.com/abcdefg/
进入他们浏览器的URL地址栏,URI/abcdefg/
将被发送到您的服务器。第一条规则:
RewriteRule ^([A-Za-z0-9-]+)/?$ tour.php?tour=$1 [NC,L]
匹配,因为/abcdefg/
匹配您的模式^([A-Za-z0-9-]+)/?$
,并且它被重写为/tour.php?tour=abcdefg
。如果这是针对programa.php的呢?第二条规则永远无法实现,因为所有内容都被第一条规则的模式捕获。您需要添加一些其他内容来区分这两者。例如,添加额外的路径注释:
RewriteRule ^tour/([A-Za-z0-9-]+)/?$ tour.php?tour=$1 [NC,L]
RewriteRule ^programa/([A-Za-z0-9-]+)/?$ programa.php?programa=$1 [NC,L]
这意味着如果我转到http://youdomain.com/programa/abcdefg/
,我的请求被重写为/programa.php?programa=abcdefg
,如果我转到http://youdomain.com/tour/abcdefg/
,我的请求被重写为/tour.php?tour=abcdefg