我有以下php文件:
http://example.com/details.php?item=asdf
但是,我希望网址更简洁:
http://example.com/item/asdf/details
我尝试像这样使用.htaccess
文件:
RewriteEngine on
RewriteRule ^item/(\w+)/details$ details.php?item=$1
URL重写有效。
但是,当我尝试从main.css
加载位于http://example.com
的{{1}}时,我从Chrome收到以下消息:
details.php
因为找不到Failed to load resource: the server responded with a status of 404 (Not Found)
。
是否可以将原始网址的“基本”或“根”目录与重写的网址一起使用?我想从动态生成的http://example.com/asdf/main.css
“目录”访问main.css
。我不想在html中使用asdf
标签,因为这看起来很混乱,或者因为我使用的是模板页面,所以不指向父目录。
我尝试过base
,但这只会造成另一个错误。有人可以帮我吗?
答案 0 :(得分:1)
如果文件不存在,请尝试以下操作,如果文件不存在,它将被重写,默认情况下将起作用。
RewriteEngine on
RewriteBase /item/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^item/(\w+)/details$ details.php?item=$1 [L]
答案 1 :(得分:0)
我决定走<base>
路线,但是我没有使用php来对URL进行硬编码,
<base href="/<?=$_SERVER["HTTP_HOST"]?>">