2013-01-31 23 views
0

我正在清理我的网址。一旦我使用MOD_REWRITE,是否需要修改我的网页中的链接?

说我有一个URL http://www.example.com/index.php?id=12345&name=some-name

我只是改变了它更好看使用mod_rewrite

http://www.example.com/blog/12345/some-name

现在的痛苦是在网页的index.php没有加载任何图像,C​​SS文件和锚链接全部断开。

位置我的形象是http://www.example.com/images/12345/some-image.jpg

我已经通过我的网站使用相对路径。

现在是否需要更改我所有网页上的链接? .htaccess可以为我做一些诡计吗?请帮忙。

这里是我的.htaccess-

RewriteEngine On 

RewriteCond %{SCRIPT_FILENAME} !-d 

RewriteCond %{SCRIPT_FILENAME} !-f 

RewriteRule ^blog/(.*)/$ index.php?id=$1 [NC,L] 

RewriteRule ^blog/(.*)/(.*)$ index.php?id=$1&name=$2 [NC,L] 

回答

2

看看我添加第二行。

RewriteEngine On 
RewriteRule \.(css|jpe?g|gif|png|js|css|htm|html|mp3|wav|ico)$ - [L] 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^blog/(.*)/$ index.php?id=$1 [NC,L] 
RewriteRule ^blog/(.*)/(.*)$ index.php?id=$1&name=$2 [NC,L] 

这基本上说,如果你在URL中看到这个扩展名,只是直接传递给文件。

+0

谢谢!纠正我,如果我失去了一些东西。我的.htaccess现在看起来像这样。但我无法实现我所期待的。 RewriteEngine On RewriteRule \。(css | jpe?g | gif | png | js | css | htm | html | mp3 | wav | ico)$ - [L] RewriteCond%{SCRIPT_FILENAME}!-d RewriteCond%{ SCRIPT_FILENAME}!-f RewriteRule^blog /(.*)/$ index.php?id = $ 1 [NC,L] RewriteRule^blog /(.*)/(.*)$ index.php?id = $ 1&name = $ 2 [NC,L] – Yesh

+0

这种变化是怎么回事? –

+0

尝试翻转最后2行,如果这不起作用,我会在我的网络服务器上做一个快速测试。 –

1

RewriteCond仅适用于下一条规则,而不适用于下面的所有规则。你的第二条规则并不是要避免存在的目录和文件。试试这个

RewriteEngine On 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^blog/(.*)/$ index.php?id=$1 [NC,L] 


RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^blog/(.*)/(.*)$ index.php?id=$1&name=$2 [NC,L] 
1

啊......!

我只是在我的头部添加这个小线,它解决了我所有的问题:)

<base href="http://example.com/ /> 

现在,我很喜欢...见鬼,为什么没有我的脑海里这么长的时间来想这个: )

相关问题