我一直试图让我的.htaccess文件重写所有网址。
然而,无论我做什么,我都无法忽略现有目录。而且,我的意思是,表现得好像他们不存在。
例如,假设我有以下文件结构:
/
dir1
file1.php
dir2
file2.php
.htaccess
并且假设我想将所有流量重定向到dir1/file1.php?url=path
。
如果路径是现有目录,这对我不起作用。
例如,如果我导航到url/path/stuff/dir2
,那么"重定向"可行,但地址栏中的网址由于某种不可思议的原因而变为url/path/stuff/dir2/?url=dir2
。
这是我的.htaccess
:
Options -MultiViews
Options -Indexes
Options +FollowSymLinks
# so navigating to a url with a trailing slash won't cause problems
DirectorySlash Off
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dir1/file1.php?url=$1 [QSA,L]
答案 0 :(得分:0)
您(更新).htaccess说:IF(它不是现有文件)然后{重写URL}。好像你想要
RewriteEngine on
RewriteCond %{REQUEST_URI} !dir1/file1.php
RewriteRule ^(.*)$ dir1/file1.php?url=$1 [QSA,L]
在这种情况下,RewriteCond可以防止无限循环。 RewriteRule只应用一次。重写模块将继续循环通过所有规则,直到循环不会导致更改为URI。