标签归档:htaccess

.htaccess二三事

近日写一些小的项目时遇到了url的一些奇葩需求,折腾许久终于解决,现在把解决方案记录下来。

1、将http://domain/admin/*的访问重写至http://domian/admin.php下,剩下的重写至index.php下

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^admin/[a-zA-Z0-9_?&/]*$ admin.php [L]
RewriteRule ^admin admin.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php
</IfModule>

2、将所有访问重写至index.html文件

实现:将对http://domain/archives/1的访问重写至http://domain/index.html下,使用JavaScript获取的url地址将包含archives/1。
因为简单的RewriteRule 不加参数直接写脚本名称只适用于目标脚本为动态语言脚本,即可以适用于index.php,若为index.html则报404错误。此时需要做特殊处理。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule [a-zA-Z0-9_?&]$ index.html
RewriteRule [a-zA-Z0-9_?&]/$ index.html
</IfModule>