Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 具有htaccess的双重重写规则_.htaccess_Mod Rewrite_Rewrite - Fatal编程技术网

.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