我在我的 htaccess 文件中使用此代码将所有请求重定向到 index.php 并且它可以工作。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]
现在,我正在尝试将几个请求重定向到另一个文件public.php
(即如果用户登录,则通过 index.php 加载所有内容,否则通过 public.php 加载文件 - 这就是想法)
我尝试了几种对其他人有用的方法,但似乎没有一个对我有用。我不知道为什么。
应用程序结构是
[FOLDER]
app
www
static
.htaccess
这是根文件夹中使用的 .htaccess
RewriteCond %{HTTP_HOST} ^(www.)?website.com
RewriteRule ^(.*)$ www/index.php?$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^(static.)?website.com
RewriteRule ^(.*)$ static/index.php?$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^([^.]+)\.website\.com$ [NC]
RewriteRule ^(.*)$ app/index.php?$1 [L,QSA]
默认情况下,如果子域是www
或文件分别从和文件夹static
加载。如果通过其他子域访问 url,则从目录加载文件。www
static
app
我试过的代码是
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^public$ public.php [L,QSA]
RewriteRule ^(.*)$ index.php [L,QSA]
互换了这两行,并尝试删除 L,QSA
还有许多其他人..,我可以在 Google + Stackoverflow 上找到很多人。,但他们都没有工作,I guess its not working due to how i have coded the .htaccess file in the root directory
..