htaccess:如何将example.com/anything重定向到脚本example.com/seoparser.php?anything

时间:2011-06-23 10:26:23

标签: php apache .htaccess

如何使用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

结束

2 个答案:

答案 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]