2014-09-30 114 views
1

我在一个网站上工作,使得URL更加友好,但是,当我设置htaccess文件时,我碰到了一个问题。如果我使用我更喜欢设置的URL,我会回到本地主机,而不是我正在使用的开发地图,所以在这种情况下,我会回到localhost/blog,而不是localhost/jellyfish_rework/blog,所以我最终得到从我的localhost的视图或只是在页面中的错误。本地主机上的htaccess指的是根目录,而不是文件夹

原路段为http://localhost/jellyfish_rework/index.php?p=blog

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase /jellyfish_rework/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)$ /?p=$1 [L]] 

这是否有与事实我anchors<a href"/blog"></a>办?因为在其他anchor标签,我仍然是指以旧的方式,我不得到的响应回来,我想(这样的链接保持http://localhost/jellyfish_rework/index.php?p=blog

编辑

htaccess文件位于本地主机/ jellyfish_rework /因为这是索引文件的位置。

回答

1

你的最后一行(RewriteRule)应该是这样

RewriteRule ^([^/]*)$ index.php?p=$1 [L] 

不要前添加一个斜线。
否则它将如同绝对路径(来自根的/index.php)。

通过上面的规则,你RewriteBase,此规则将这样的行为:
If not existing file/folder then rewrite it to /jellyfish_rework/index.php?p=URI

你的旧规则(与领先的斜杠)约为:
If not existing file/folder then rewrite it to /index.php?p=URI

注意:既然你'使用相对路径,您还必须更改所有的HTML链接(css,javascript,图像,链接),并使用/jellyfish_rework/或使用base标签

<base href="/jellyfish_rework/"> 
+0

'[Tue Sep 30 14:35:34.010351 2014] [core:alert] [pid 5556:tid 936] [client :: 1:50767] E:/ Documenten/Websites/wamp/www/JellyFish_Rework/.htaccess:重写规则:坏标志分隔符嗯现在iget现在一个坏标志分隔符。 – Dorvalla 2014-09-30 12:37:17

+1

没关系,犯了一个错字.... – Dorvalla 2014-09-30 12:38:40

+1

是的,我修好了,当我接管重写文件时弄错了一个错字,并且当我按下控制按钮来保存它时没有按下控制按钮,所以它在我再次保存它之前,在它后面植入了一个s;)它现在就像一个魅力;)谢谢你 – Dorvalla 2014-09-30 12:41:34

相关问题