我在root中有一个名为" pages"的文件夹,所有HTML页面都在那里,现在我有一个重写mod,从url删除文件夹并删除.php,所以www .website.com / pages / index.php,成为:www.website.com/index。
现在,我的问题是所有其他文件夹都需要在根目录中,当我尝试从这些文件夹中搜索文件时,我的重写mod在" pages"文件夹而不是根文件夹。
我只需要在"页面"文件夹,只在网址中使用。
.htacces文件:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.[a-zA-Z0-9]+$
RewriteRule ^(.+?)/*$ $1.php [L,QSA]
#remove subfolder pages
RewriteCond %{REQUEST_URI} !(.*)pages
RewriteRule ^(.*)$ pages/$1 [L]
对此有何帮助?
答案 0 :(得分:1)
我找到了答案,我将重定向规则更改为此规则:
RedirectMatch 301 ^/subdir/$ http://www.mysample.com/
所以现在,它只是将没有特定子文件夹的URL重写到根目录,而不是触及其他子文件夹。
没有使用该规则的任何理由?
答案 1 :(得分:0)
您可以使用RewriteCond
检查是否存在php文件,然后转发到pages/
,如下所示:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /GP/
RewriteCond %{DOCUMENT_ROOT}/GP/pages/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ pages/$1.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/GP/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ $1.php [L]