GoDaddy文件名扩展在子域上重写

时间:2014-01-08 15:06:24

标签: php regex apache .htaccess mod-rewrite

GoDaddy用户在这里。我有我的.htaccess文件,它允许忽略php扩展。我相信它写得正确:

的.htaccess

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]

但是,在服务器上,我的根目录在这个特定网站上不是'/',因为这是一个子域,它是'mysite / public /'所以当我尝试访问我的网站时,我得到了404,因为它说它正试图访问

'mysite/public/mysite/public/mywebpage.php'

显然它正在尝试访问根目录上的整个根目录,我试图不会发生这种情况。有任何想法吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

使用适当的RewriteBase

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} /([^.]+)\.php[?\s] [NC]
RewriteRule ^ %1 [R,L,NC]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]