【发布时间】:2016-05-20 03:43:53
【问题描述】:
如果这个问题是重复的,我很抱歉,但是我在网上查找的所有内容都让我很困惑,所以我再次发布这个问题,说明我的需求。
由于我希望我的网站结构干净,我想将内容与配置分开,所以我将所有页面放在/app 文件夹中(很像 rails 应用程序)。网站的结构大概是这样的:
.
├── app
│ ├── index.php
│ └── products
│ └── index.php
├── configs
└── layouts
我发现了如何通过这种方式将根目录重定向到.htaccess 中的/app 文件夹:
RewriteEngine on
RewriteRule ^$ /app [L]
当我访问服务器时,apache 会重定向到 /app 文件夹,并且 url 是:localhost/app。
我想重写网址以删除/app。例如,当我访问 /products/ 文件夹时,我不希望 url 看起来像这样:localhost/app/products/ 我希望它看起来像这样:localhost/products/
我在 google 上搜索了解决方案,我发现它与 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 仍在网址中!!
我该怎么做?
【问题讨论】:
标签: php apache .htaccess redirect mod-rewrite