簡體   English   中英

將.htaccess文件放在var / www文件夾中會使我的網站混亂

[英]Placing .htaccess file in var/www folder messes my website up

我現在正在使用mod_rewrite,並已成功啟用它。

但是,我需要在var / www /中放入一個htaccess文件才能實現我想要的功能,即簡單地重命名Urls。當我放置它時,我的網站變得非常奇怪,並且基本上沒有任何作用...

我需要將任何代碼放入htaccess文件中以便正常運行嗎?

這是我到目前為止擁有的htaccess文件:

Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/ad\.php
RewriteRule ^(.*)$ ad.php?ad_id=$1 [L]

我的DocumentRoot也設置為var / www /,我的整個網站根目錄都在那里...(index.html等)。

我對htaccess缺少什么?

如果您需要更多輸入,請告訴我...

我懷疑您的css文件,js或圖像均未加載。 此外,您的任何鏈接均無效。 如果是這樣,問題可能出在RewriteRule中,基本上是因為該規則告訴apache將所有請求傳遞給ad.php

您需要微調RewriteRule,以便僅廣告鏈接受規則影響。

首先,通過像這樣擴展RewriteRule:

Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_URI} !^/ad\.php
RewriteRule ^(.*)$ ad.php?ad_id=$1 [L]

我添加的這三行代碼告訴apache僅在請求的文件名不是目錄,現有文件或符號鏈接時才應用該規則-這應注意靜態內容,例如css和圖像。 如果您指向鏈接的其他頁面也實際位於服務器的硬盤上(純HTML或php文件),則應重新開始工作。

但是,正如我已經對您的問題小的mod_rewrite問題 )說的那樣,您需要微調該規則,以便該規則僅滿足廣告,而沒有其他條件。

這不是一個完整的答案,但是它將為您提供更多可以幫助您的信息。

  1. 您可以將選項放在同一行上Options +FollowSymLinks -Indexes
  2. 並非所有主機都允許.htaccess,或者不是所有.htaccess命令。 這可能會導致問題和頁面無法正常工作。
  3. 嘗試注釋掉所有內容(在每行前面使用#號),然后從頂部開始取消注釋,直到找到問題行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM