我正在尝试使.htaccess规则不影响其他文件网址
示例 我的.htaccess规则是
RewriteEngine On
RewriteRule ^([^/]*)$ /tr/hp.php?q=$1 [L]
我的网站网址
mydomain.com/keywords
关键字的一切都很好,但是当我尝试打开robots.txt
时mydomain.com/robots.txt
OR
mydomain.com/images.jpg
任何其他文件网址
重定向/tr/hp.php?q=filename
哪个.htaccess重写规则对两者都有效?
答案 0 :(得分:1)
尝试:
RewriteEngine On
#--exclude real directories
RewriteCond %{REQUEST_FILENAME} !-d
#--and files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /tr/hp.php?q=$1 [L]
答案 1 :(得分:0)
您还必须阻止匹配任何带有点的请求模式:
RewriteEngine On
RewriteRule ^([^/.]*)$ /tr/hp.php?q=$1 [L]
当然可以进一步完善这种模式。
或者有些人喜欢使用RewriteCond
阻止重写对文件系统中实际存在的文件或文件夹的请求:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
但这是你必须决定的事情。例如,robots.txt
等资源是以动态方式提供的,这无济于事......