我已经开通了这个网址:
http://domain.com/edit.php?id=123
我一直在寻找,到目前为止,我找到的一切都是教我修改htaccess以便它变成:
我的问题是,我也有http://domain.com/delete.php?id=123
所以它不会发生冲突,因为它们都会被htaccess重写为相同的(http://domain.com/123/
)吗?
我怎样才能这样做
http://domain.com/edit.php?id=123
- > http://domain.com/edit/123
http://domain.com/delete.php?id=123
- > http://domain.com/delete/123
http://domain.com/page.php
- > http://domain.com/page
答案 0 :(得分:1)
所以它不会冲突,因为它们都会被htaccess重写为同一个(http://domain.com/123/)吗?
是的,有没有方式判断“123”是否应该路由到“编辑”或“删除”。你必须像你建议的那样添加前缀。通过文档根目录中的htaccess文件中的这些规则:
Options +FollowSymLinks -Multiviews
RewriteEngine On
RewriteRule ^delete/([0-9]+)/? /delete.php?id=$1 [L,QSA]
RewriteRule ^edit/([0-9]+)/? /edit.php?id=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.php -f
RewriteRule ^(.*)$ /$1.php [L]
此外,您可以将这些添加到外部重定向浏览器到更好看的网址
RewriteCond %{THE_REQUEST} \ /+([^.]+)\.php\?id=([0-9]+)
RewriteRule ^ /%1/%2? [L,R=301]
RewriteCond %{THE_REQUEST} \ /+([^.]+)\.php
RewriteRule ^ /%1 [L,R=301]