通过将“ - ”替换为“/”来重命名网址

时间:2011-11-16 05:43:48

标签: .htaccess url-rewriting

我有.htaccess文件如下显示网址..some.com / designit / portfolio-website-nature?page = 2 inplace of ..some.com / designit // portfolio.php?cat = website&amp ; subcat = nature?page = 2 bt我想把它显示为..some.com / designit / portfolio / website / nature / page2

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9_.\ ]+)$ $1.php [QSA]
RewriteRule ^portfolio-([a-zA-Z0-9_.\ ]+)$ portfolio.php?cat=$1 [QSA]
RewriteRule ^portfolio-([a-zA-Z0-9_.\ ]+)-([a-zA-Z0-9.\-\ ]+)$ portfolio.php?cat=$1&subcat=$2 [QSA]
#RewriteRule ^portfolio-([a-zA-Z0-9_.\ ]+)-([a-zA-Z0-9.\ ]+)-([0-9]+)$ portfolio.php?cat=$1&subcat=$2&page=$3 [QSA]
#RewriteRule ^portfolio-([a-zA-Z0-9_.\ ]+)-([0-9]+)$ portfolio.php?cat=$1&page=$2 [QSA]
#RewriteRule ^portfolio-([0-9]+)$ portfolio.php?page=$2 [QSA]
RewriteRule ^projects-([a-zA-Z0-9_.\ ]+)$ portfolio_details.php?id=$1 [QSA]

我的主要问题是用“/”替换“ - ”。请帮助我。


我使用WAMPSERVER apache版本2.2.17,OS-WINDOWS,我在designit文件夹中有.htaccess文件。我已经编写过。当我运行你的代码并点击类别名称时,页面正在运行slyte,js,images.but页面正常工作,网址为“http:// localhost / designitt / portfolio / categoryname”。现在再次点击相同链接或其他类别,网址显示为“http:/ / localhost / designitt / portfolio / portfolio / categoryname“再次点击相同的链接它变成了”http:// localhost / designitt / portfolio / portfolio / portfolio / categoryname“。我想你有我的问题。当你得到的时候请帮助我时间。

1 个答案:

答案 0 :(得分:0)

原则基本上是:

  • 如果网址类似于“portfolio / aa / bb / cc”,则需要添加此参数:“cat=aa”,“subcat=bb”,“page=cc
  • 如果网址类似于“portfolio / aa / bb”,那么您需要添加此参数:“cat=aa”,“subcat=bb
  • 如果网址类似于“portfolio / aa”,那么您需要添加此参数:“cat=aa

这可以这样工作:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9_.\ ]+)$ $1.php [QSA]
RewriteRule ^portfolio/([a-zA-Z0-9_.\ ]+)/([a-zA-Z0-9_.\ ]+)/([0-9]+) /portfolio.php?cat=$1&subcat=$2&page=$3 [QSA]
RewriteRule ^portfolio/([a-zA-Z0-9_.\ ]+)/([a-zA-Z0-9_.\ ]+) /portfolio.php?cat=$1&subcat=$2 [QSA]
RewriteRule ^portfolio/([a-zA-Z0-9_.\ ]+) /portfolio.php?cat=$1 [QSA]
RewriteRule ^projects/([a-zA-Z0-9_.\ ]+)$ /portfolio_details.php?id=$1 [QSA]

告诉我这是否有效。


请尝试使用RewriteLog指令:它可以帮助您找出此类问题:

# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On

告诉我它是否有效。

相关问题