Network Solutions主机上的URL重定向

时间:2012-06-27 19:25:06

标签: .htaccess mod-rewrite url-rewriting

我正在尝试解析没有.php扩展名的PHP页面请求。我实际上更喜欢没有文件扩展名的URL,但这不是现在最关注的问题。问题是外部链接因当前配置而中断:

www。[domainname] .com / abc / forms返回自定义404页面。

www。[domainname] .com / abc / forms.php正确完成。

www。[domainname] .com / service解析为www。[domainname] .com。

请求www。[domainname] .com / abc解析为正确的index.php,并且不会将URL重写为www。[domainname] .com / abc / index.php。

目录结构大致如下:

  • [域名]
    • 的index.php
    • ABC
      • 的index.php
      • forms.php
      • other.php
    • DEF
      • 的index.php
      • blah.php

这是我的htaccess文件。如果文件是.php文件,则第二个块应该接受对文件的任何请求,并附加“.php”扩展名。它没有这样做。第三个块是我尝试强制form.php页面请求最常出现的错误。这不起作用,但以下行确实有效(如上所述。)最后,自定义404页面正在运行。

Options -Indexes
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^[domainname].com [NC]
RewriteRule ^(.*)$ http://www.[domainname].com/$1 [L,R=301]


RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php


RewriteRule ^abc/forms$ /abc/forms.php [L,R=301]

RewriteRule ^service(.*)$ / [L,R=301]
ErrorDocument 404 /404.php

我在这里遗漏了什么吗?感谢。

1 个答案:

答案 0 :(得分:1)

我认为需要RewriteBase,如此:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /