[英]Mod rewrite / clean urls problem
我已經使用drupal 4.7安裝很多年了,最近出現了一個問題。 也就是說,重寫的網址現已顯示這些符號:Q =每Drupal的生成的URL如下: http://sitename.com/?q=path/alias ,哪里會前: HTTP://站點名。 com / path / alias 。
關於為什么會發生這種情況,我最好的猜測是,我最近開始使用一些PHP代碼在幾個sideblock中添加特定於上下文的鏈接樣式。 這是代碼:
<?php $alias= $_GET['q']; ?>
<a <?php $pos=strpos($alias,"1234"); // node number
if(!$pos == false) {
echo 'style="color:black"';
} ?> href="internal/link/alias">Internal Link</a>
或更近期:
<?php $path = isset($_GET['q']) ? $_GET['q'] : '<front>';
$alias = url($path, array('absolute' => TRUE)); ?>
<a <?php $pos=strpos($alias,"internal/link/alias");
if(!$pos == false) {
echo 'style="color:black"';
} ?> href="internal/link/alias">Internal Link</a>
這可能是問題嗎? 如果是這樣,關於修復的任何想法嗎?
我認為您的干凈網址已損壞。 如果您沒有打開干凈的URL,則所有URL都將看起來像http://example.com/?q=/foo/bar/baz
。 重寫規則將來自http://example.com/foo/bar/baz
請求轉換為 http://example.com/?q=/foo/bar/baz
進行內部處理。
您需要返回並確保您的重寫規則仍然有效(甚至可以轉到http://example.com/foo/bar/bazz
嗎?),並確保Drupal啟用了干凈的URL。
進入管理員/設置,並確保“清理URL”已打開。
請嘗試以下操作:
再次將未修改的.htaccess文件上傳到網站的根目錄
確保您的apache具有mod_rewrite可用。 如果您具有外殼程序訪問權限,並且是Ubuntu / Debian計算機,則只需執行
a2enmod重寫
檢查是否在管理員/設置上啟用了該選項
在根文件夾上創建一個簡單的.php文件,然后鍵入:
的phpinfo();
然后,看看模塊是否正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.