【问题标题】:.htaccess how to remove subdirectory?.htaccess 如何删除子目录?
【发布时间】:2013-06-19 09:20:34
【问题描述】:
我有一个想要进入的网站
http://mysite.com/myfolder
但是去(从加载index.php)
http://mysite.com/dir/myfolder
那么我应该使用哪种RewriteRule?
以下规则不起作用,导致所有页面出现“500:内部服务器错误”。
RewriteRule ^$ dir/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ dir/$1
谢谢!
【问题讨论】:
标签:
.htaccess
mod-rewrite
url-rewriting
subdirectory
【解决方案1】:
只要没有路径包含“dir”字符串,以下内容应该可以工作:
RewriteEngine On
RewriteCond %{HTTP_HOST} !dir
RewriteRule ^(.*)$ http://mysite.com/dir/$1 [R=301,L]
【解决方案2】:
通过httpd.conf启用mod_rewrite和.htaccess,然后把这段代码放到你.htaccess的DOCUMENT_ROOT目录下:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteRule (?!^dir/)^(.*)$ /dir/$1 [L,NC]