【问题标题】:issue with .htaccess url rewriting.htaccess url 重写问题
【发布时间】:2014-02-25 07:04:15
【问题描述】:

我正在尝试重写 url。下面是我在 .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 时,它可以工作。 另一个问题是我无法返回到其他页面。当我来到单品时,点击另一个菜单选项,url会显示为,

single-products/about

并显示页面未找到错误。我需要/关​​于。我的菜单链接应该是

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

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

【问题讨论】:

  • 不确定我是否完全理解这个问题,您是否也有同名的文件夹。听起来您使用的相对路径有问题,请尝试使用以 / 开头的根文件夹中的文件路径,因此对于您的 css 示例,您可以使用:/css/style.css
  • 我没有同名文件夹。当我选择另一个菜单选项时,路径应该是错误的。
  • 尝试将相对路径更改为以 / 开头

标签: php .htaccess mod-rewrite


【解决方案1】:

对于要忽略的文件夹,例如 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

是重写规则的设置方式。

【讨论】:

猜你喜欢
  • 2011-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-30
  • 2012-04-23
相关资源
最近更新 更多