Php htaccess中的URL重定向
我有一个htaccess文件,该文件已设置并在实时服务器上运行。一切都运作良好,但我必须添加一些具体的网址重定向到它。特定重定向已在IIS web.config文件中设置。例如:Php htaccess中的URL重定向,php,apache,.htaccess,mod-rewrite,redirect,Php,Apache,.htaccess,Mod Rewrite,Redirect,我有一个htaccess文件,该文件已设置并在实时服务器上运行。一切都运作良好,但我必须添加一些具体的网址重定向到它。特定重定向已在IIS web.config文件中设置。例如: <rule name="URL re-direct" stopProcessing="true"> <match url="^program_consumer((\.cfm)|(\.php)|()+)((\?.*)|())$" /> <conditions logica
<rule name="URL re-direct" stopProcessing="true">
<match url="^program_consumer((\.cfm)|(\.php)|()+)((\?.*)|())$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Redirect" url="site_programs{R:7}" />
</rule>
显然,program_consumer不是一个存在于根文档目录中任何地方的文件,但是site_程序确实存在,并且作为一个无扩展名的PHP文件使用。关于我遗漏了什么有什么想法吗?您在
重写规则
中的正则表达式似乎有问题,需要放在内部重写规则之前:
AddDefaultCharset OFF
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^(program_consumer\.(?:cfm|php))$ /site_programs/$1 [L,R=301,NC,NE]
# Resolve .php file for extensionless php urls
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
重写规则语法会抛出500个错误。我甚至无法加载主页。很抱歉,第一条规则中有一个额外的括号。现在已修复,请重试。
AddDefaultCharset OFF
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^(program_consumer\.(?:cfm|php))$ /site_programs/$1 [L,R=301,NC,NE]
# Resolve .php file for extensionless php urls
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+?)/?$ $1.php [L]