问题.htaccess url重写

时间:2014-02-25 07:04:15

标签: php .htaccess mod-rewrite

我正在尝试重写网址。下面是我在.htaccess中的代码。

RewriteEngine on

RewriteRule  ^home?$  index.php 
RewriteRule  ^contact?$  contact.php 
RewriteRule  ^about?$  about.php 
RewriteRule  ^logout?$  logout.php   
RewriteRule  ^products?$  products.php 

RewriteRule  ^single-products/([0-9]+)$  single-products.php?product=$1 

没有参数的页面工作正常。但是,当我点击带有参数的“单一产品”页面时,它会显示为

single-products/1 

并且图片和CSS样式无效。当我将路径css / syle.css更改为../css/style.css时,它可以工作。 另一个问题是我不能回到另一个页面。当我来到单品,并点击另一个菜单选项时,网址会显示如,

single-products/about

并显示找不到页面错误。我要求/约。我的菜单链接应为

<a href="single-products/1>Product 1</a>

我该如何解决这些问题。我在许多网站上搜索了一个解决方案但没找到。有人请帮助我。 提前谢谢......

1 个答案:

答案 0 :(得分:0)

对于要忽略的文件夹(例如CSS等),请在上次重写规则之前尝试此操作:

# Directories to ignore
RewriteRule ^(css|images|js)(/.*)?$ - [L]

如果您计划使用机器人文件等,也可以考虑使用它:

# Ignore favicon & robots.txt
RewriteRule ^favicon\.ico - [L]
RewriteRule ^robots\.txt - [L]
RewriteRule ^sitemap\.xml - [L]

您缺少结束语:

<a href="single-products/1">Product 1</a>

关于你的其他问题,你很难回答,因为你还没有说过你希望它如何运作..

single-products/1

是如何将重写规则设置为有效。