我正在为他们网站上的朋友做一些工作,当我们在新网站上工作时,我想设置他们的.htaccess文件以使用以下规则重定向用户:
http://example.com/
和http://example.com/index.html
都应重定向到http://example.com/legacy/index.html
)http://example.com/index.php
)http://example.com/beta/
重定向到http://example.com/index.php
)这可能是一个简单的请求,但我没有.htaccess使用的规则语言的经验。
提前致谢!!
答案 0 :(得分:1)
将对/
或/index.html
的所有请求重定向到子目录(例如,http://example.com/
和http://example.com/index.html
都应重定向到http://example.com/legacy/index.html
)
RewriteEngine On
RewriteRule ^(index\.html)?$ /legacy/index.html [L]
允许对index.php的直接请求无需重定向即可通过(例如http://example.com/index.php
)
RewriteRule ^index\.php$ - [L]
如果可能,对第二个子目录的请求会被重定向到index.php(例如http://example.com/beta/重定向到http://example.com/index.php
)
RewriteRule ^beta/?$ /index.php [L]
这些都将放在文档根目录中的htaccess文件中。如果您确实想要重定向浏览器以便更改地址栏中的网址,请在方括号中添加R=301
:[L,R=301]
。如果您说“对第二个子目录的请求被重定向到index.php ”意味着“任何子目录”,那么该规则需要更改为:
RewriteRule ^([^/]+)/?$ /index.php [L]
答案 1 :(得分:0)
我和codeigniter做了相反的事情......
RewriteEngine On
RewriteBase /myproject
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
$config['base_url'] = 'http://localhost/myproject/';
$config['index_page'] = '';
希望这会有所帮助