用于删除.php扩展名的mod_rewrite产生404错误

时间:2014-08-16 05:38:09

标签: php .htaccess mod-rewrite

为了这个,我抬头并在SO上尝试了3或4个答案,但他们并没有为我工作。

我有dev.mydomain.com/pw/,我希望dev.mydomain.com/pw/builder重定向到dev.mydomain.com/pw/builder.php等。

我尝试了几种解决方案,包括:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]

来自:here和:

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

来自:here

以及:

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

我来自其他项目。

我还尝试将RewriteBase操纵到各种内容,例如//pw/,以便无效。

有什么明显的我做错了/不做?

1 个答案:

答案 0 :(得分:0)

将此规则放在/pw/.htaccess

RewriteEngine On
RewriteBase /pw/

RewriteCond %{THE_REQUEST} /(?:index)?(.*?)\.php[\s?] [NC]
RewriteRule ^ %1 [R=301,L,NE]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/pw/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ $1.php [L]
相关问题