如何使用example.com/anything
example.com/seoparser.php?anything
重定向到脚本.htaccess
这不起作用:
RewriteEngine on
RewriteRule (.*) http://example.com/seoparser.php?$1
因为多个重定向以地址http://example.com/seoparser.php?seoparser.php
答案 0 :(得分:2)
你必须测试它是否已被重写:
RewriteCond %{REQUEST_URI} !^seoparser\.php$ [NC]
RewriteRule ^/?(.*)$ /seoparser.php?$1 [L]
答案 1 :(得分:0)
您可以检查请求的资源是否不是文件/目录,然后才重写。例如:
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]