我正在尝试在我的网站上为个人资料编写一个干净的网址。例如,我想要这个网址
/profile?user=MrEasyBB
成为
/MrEasyBB
我当前的htaccess
就是这样开始的
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ profile.php?user=$1 [NC,L]
DirectoryIndex index.php
如果我是正确的,这一切都应该有效。但是,如果他们输入的页面网址是
,则会发生什么/help
不应该有名为help
的用户,该页面应该直接指向help.php
。我可以写一条不遵循某种模式的规则吗?我还想知道更改图像,注释等规则:
IE
/image/user/MrEasyBB/1239123871712194124.jpg
而不是
/image/picture.php?user=MrEasyBB&image=1239123871712194124.jpg
如果第一个不能正常工作以及如何进行第二个工作,我对如何添加倍数并遵循该模式需要对重写规则提出任何建议并不积极?
我还下载了htaccess
cheatsheet pdf以了解更多信息
答案 0 :(得分:1)
您需要首先制定一条规则来重写图像以纠正路径,然后您的捕获所有规则将会出现:
DirectoryIndex index.php
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteRule ^(image)/[^/]+/(.+)$ /$1/$2 [NC,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^user/(.+)$ profile.php?user=$1 [NC,L,QSA]
答案 1 :(得分:0)
类似的东西:
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?image/user/([a-zA-Z0-9_-]+)/([a-zA-Z0-9.]+)$ /image/picture.php?user=$1&image=$2 [NC,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ profile.php?user=$1 [NC,L]
DirectoryIndex index.php