Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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
Php 使用.htaccess重写URL。我应该把哪条规则放在第一位?_Php_Apache_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

Php 使用.htaccess重写URL。我应该把哪条规则放在第一位?

Php 使用.htaccess重写URL。我应该把哪条规则放在第一位?,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我想重写: www.domain.com/entry/1或www.domain.com/entry/1/title到www.domain.com/entry.php?id=1 www.domain.com/entry/1/title/page/2至www.domain.com/entry.php?id=1&page=2 www.domain.com/entry/1/title/comment至www.domain.com/entry.php?id=1&a=comment 我在.htaccess文

我想重写:

www.domain.com/entry/1或www.domain.com/entry/1/title到www.domain.com/entry.php?id=1

www.domain.com/entry/1/title/page/2至www.domain.com/entry.php?id=1&page=2

www.domain.com/entry/1/title/comment至www.domain.com/entry.php?id=1&a=comment

我在.htaccess文件中有以下内容

RewriteRule ^entry/(([0-9]+))(?:/([^/]*))?/?$ ./entry.php?id=$1  
RewriteRule ^entry/([0-9]+)/([^/]+)/page/([0-9]+)$ ./entry.php?id=$1&page=$3 
RewriteRule ^entry/([0-9]+)/([^/]+)/([^/]+)$ ./entry.php?id=$1&a=$3  
它起作用了。我还试图颠倒顺序:

RewriteRule ^entry/(([0-9]+))(?:/([^/]*))?/?$ ./entry.php?id=$1  
RewriteRule ^entry/([0-9]+)/([^/]+)/([^/]+)$ ./entry.php?id=$1&a=$3  
RewriteRule ^entry/([0-9]+)/([^/]+)/page/([0-9]+)$ ./entry.php?id=$1&page=$3 

它也在工作。如何执行.htaccess文件上的行?以上哪个版本更正确?谢谢

这不要紧。但一定要在每个重写规则行的末尾加上一个[L],这样Apache在成功应用规则后就会停止,而不会无休止地循环

用于测试规则以及它们是否正确工作