从url删除目录的htaccess使页面无法打开

时间:2014-05-19 01:33:32

标签: php regex apache .htaccess mod-rewrite

我在名为'pages'的文件夹中有一个名为about.php的页面。

我成功从网址中删除了.php和目录,但现在页面没有打开。

我的所有文件都在 localhost / test / 文件夹中。 所以过去常常以 localhost / test / pages / about.php 打开 现在它显示 localhost / test / about 并且无法打开。

RewriteBase /test/    
RewriteEngine On

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index\.php($|\ |\?)
RewriteRule ^ /%1 [R=301,L]

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

RewriteRule ^pages/(.*)$ $1 [L,NC,R]

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

1 个答案:

答案 0 :(得分:0)

您可以使用:

RewriteEngine On
RewriteBase /test/

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

RewriteCond %{THE_REQUEST} /pages/ [NC]
RewriteRule ^pages/(.+)$ $1 [L,NC,R]

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

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