繁体   English   中英

htaccess网址重写无法正常工作

[英]htaccess url rewrite not working properly

我知道这个问题已经被问了几次了,但是我已经为此动了好几个小时,我似乎无法弄清楚。

所以我有一个网址: http : //example.com/product.php? id= 123我想重写为http://example.com/product/123

我有以下代码:

RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([A-Za-z-\s0-9]+)$ /product.php?id=$1 [L]

并且它使http://example.com/product/123网址正常工作,但是图像未加载,我想是因为php试图在/ product目录中找到它们,而且如果我输入原始网址,它也不会不会被重写。

那么,您能帮我解决这些问题吗?

任何帮助深表感谢!

将此代码放在您的DOCUMENT_ROOT/.htaccess文件中:

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} \s/+product\.php\?id=([^\s&]+) [NC]
RewriteRule ^ product/%1? [R=301,L]

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^ - [L]

RewriteRule ^product/([^/.]+)/?$ product.php?id=$1 [L,QSA]

RewriteRule ^([A-Za-z\s0-9-]+)/?$ /product.php?id=$1 [L,QSA]

对于css / js / images的问题,请在css,js,图像文件中使用绝对路径,而不要使用相对路径。 这意味着您必须确保这些文件的路径以http://或斜杠/开头。

您可以尝试将其添加到页面的HTML标头中: <base href="/" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM