如何使用.htaccess
将example.com/anything
重定向到脚本example.com/seoparser.php?anything
这不起作用:
RewriteEngine on
RewriteRule (.*) http://example.com/seoparser.php?$1
因为多个重定向在地址http://example.com/seoparser.php?seoparser.php
上结束
发布于 2011-06-23 18:33:44
你必须测试它是否已经被重写:
RewriteCond %{REQUEST_URI} !^seoparser\.php$ [NC]
RewriteRule ^/?(.*)$ /seoparser.php?$1 [L]
发布于 2011-06-23 19:04:16
您可以检查请求的资源是否不是文件/目录,然后才能重写。例如:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /seoparser.php?$1 [QSA,L]
根据情况(你有什么重写逻辑/需要实现),这可能是比@inti提到的更好的解决方案。你会在很多真实的应用程序(例如,WordPress,Magento)和PHP框架中看到这样的规则组合(大多数时候,它们只有内部路由逻辑)。
这是一个有点不同的方法(主要是从组织的角度来看):
RewriteEngine On
# Do not do anything for already existing files
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .+ - [L]
# Your rewrite rules (file/folder does not exist, we may need to route it elsewhere)
RewriteRule (.*) /seoparser.php?$1 [QSA,L]
https://stackoverflow.com/questions/6452559
复制相似问题