如果这个问题是重复的,我很抱歉,但我在网上寻找的所有内容都让我感到困惑,所以我再次发布这个问题,说明我的需求。
由于我希望我的网站结构干净,我想将内容与配置分开,所以我将所有页面放在/app
文件夹中(很像 rails 应用程序(。网站的结构将大致如下:
.
├── app
│ ├── index.php
│ └── products
│ └── index.php
├── configs
└── layouts
我发现了如何以这种方式将根重定向到.htaccess
中的/app
文件夹:
RewriteEngine on
RewriteRule ^$ /app [L]
当我访问服务器时,apache 重定向到 /app
文件夹,网址为:localhost/app
。
我想重写网址以删除/app
.例如,当我访问/products/
文件夹时,我不希望网址看起来像这样:localhost/app/products/
我希望它看起来像这样:localhost/products/
用谷歌搜索了解决方案,我发现,就像它为 worpress 所做的一样,你只需要添加:
RewriteEngine on
RewriteRule ^$ /app [L]
RewriteRule %{REQUEST_URI} ^/app/.*
RewriteRule ^(.*)$ app/$1 [L]
但是这不起作用,Apache返回500 internal server error
。
我试过了:
RewriteEngine on
RewriteRule ^$ /app [L]
RewriteRule %{REQUEST_URI} !^/app/
RewriteRule ^(.*)$ app/$1 [L]
和
RewriteEngine on
RewriteRule ^$ /app [L]
RewriteRule %{REQUEST_URI} !^/app/.*
RewriteRule ^(.*)$ app/$1 [L]
并且都返回500 internal server error
.
我还尝试过:
RewriteEngine on
RewriteRule ^$ /app [L]
RewriteCond %{REQUEST_URI} !^/app/
RewriteRule ^(.*)$ app/$1 [L]
但/app
仍然在网址中!!
我该怎么做?
尝试:
RewriteEngine on
#--Redirect /app/foobar to /foobar--#
RewriteCond %{THE_REQUEST} /app/([^s]+) [NC]
RewriteRule ^ /%1 [NC,L,R]
#--Rewrite /foobar to /app/foobar--#
RewriteCond %{REQUEST_URI} !^/app
RewriteRule ^(.*)$ /app/$1 [NC,L,QSA]