这是我的网址
我的文件托管脚本包含大量重写,那么如何将这种特定类型的URL重定向到comments.php而不与其他重写冲突。
我的htaccess文件
Options +FollowSymLinks
RewriteEngine on
##point to installation directory
##if it is the root dir,enter /
##else /otherdir
RewriteBase /
RewriteCond %{QUERY_STRING} ^d=([a-zA-Z0-9]{8,12})$
RewriteRule ^$ download.php?id=%1&type=1 [L]
RewriteCond %{QUERY_STRING} ^d=([a-zA-Z0-9]{12})$
RewriteRule ^$ delete.php?id=%1 [L]
RewriteRule ^file/([0-9]+)/(.*)$ download.php?id=$1&name=$2&type=2 [L]
RewriteRule ^([a-z]{2})/file/([0-9]+)/(.*)$ download.php?setlang=$1&id=$2&name=$3&type=2 [L]
RewriteRule ^myfolders/([0-9]+)-(.*)$ folders.php?fid=$1&name=$3&%{QUERY_STRING} [L]
RewriteRule ^([a-z]{2})/myfolders/([0-9]+)-(.*)$ folders.php?setlang=$1&fid=$2&name=$3&%{QUERY_STRING} [L]
RewriteRule ^topfiles/index([0-9]*)\.html$ top.php?s=$1&type=1 [L]
RewriteRule ^([a-z]{2})/topfiles/index([0-9]*)\.html$ top.php?setlang=$1&s=$2&type=1 [L]
RewriteRule ^([a-z]{2})$ ?setlang=$1 [QSA,L]
RewriteRule ^([a-z]{2})/$ ?setlang=$1 [QSA,L]
RewriteRule ^([a-z]{2})/(.*)\.php$ $2.php?setlang=$1 [QSA,L]
RewriteRule ^content/([0-9a-zA-Z]+)\.html$ page_template.php?page=$1 [QSA,L]
<IfModule mod_security.c>
# Turn off mod_security filtering.
SecFilterEngine Off
# The below probably isn't needed,
# but better safe than sorry.
SecFilterScanPOST Off
</IfModule>
<FilesMatch "\captcha.php$">
Header set Cache-Control "max-age=1"
</FilesMatch>
答案 0 :(得分:1)
把它放在最后一个地方。要处理规则,无论如何,将其置于首位并添加[L]
标志。重写规则按其出现的顺序处理。请注意,如果您在.htaccess环境中执行此操作,那么重写规则将在没有真正目标的成功重写后重新启动,因此您必须添加如下内容:
RewriteRule ^comments\.php - [L]
RewriteRule ^.*/[0-9]+/comments\.php comments.php [L,QSA]
答案 1 :(得分:0)
尝试此规则:
RewriteRule ^Anonymous/[0-9]+/comments\.php$ comments.php [L]