2014-02-25 72 views
0

我想重写url。以下是我在.htaccess中的代码。与.htaccess url重写问题

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> 

我该如何解决这些问题。我搜索了很多网站的解决方案,并没有找到一个。任何人都请帮助我。 在此先感谢...

+0

不知道我完全理解这个问题,你是否也有一个同名的文件夹。这听起来像是你正在使用的相对路径的问题,请尝试使用从/开始的根文件夹中的文件路径,因此对于您的css示例,您可以使用:/css/style.css – Lupin

+0

我没有带有一样的名字。当我去另一个菜单选项时,路径应该是错误的。 – sjkon

+1

尝试更改相对路径以/ – Lupin

回答

0

对于文件夹,如CSS等你最后重写规则之前,试试这个忽略:

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

您也可能要考虑使用过这个,如果你打算为一个robots文件等:

# 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 

是rewite规则的设置工作。

+0

开头当我点击产品页面时,我的网址看起来像http://www.mysite.com/product。而当我选择单一产品时,它就是http://www.mysite.com/single-products/1。然后,如果我再次点击产品,则会显示网址http://www.mysite.com/single-products/product。我需要http://www.mysite.com/product。我该如何显示。 – sjkon

+1

那么这不是一个.htacess问题。正如@Lupin上面所说的,用'/'开始你的链接。所以:例如'Product'。 –

+0

非常感谢。有效。 – sjkon