簡體   English   中英

#PHP如何為.htaccess創造條件

[英]#PHP How do I create conditions for .htaccess

首先抱歉,我使用谷歌翻譯。

我有 *.php

  • domainname.com/filename.php
  • domainname.com/file1.php?a=aa&b=bb
  • domainname.com/file2.php?a=cc

我想把它改成

  • domainname.com/filename(無文件擴展名)
  • 域名.com/aa/bb
  • 域名.com/cc

現在我只寫三個條件它不起作用幫助我修復它。 感謝您。

<IfModule mod_rewrite.c>  
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)/(.*) /file1.php?a=$1&b=$2

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*) /file2.php?a=$1

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.*) $1.php [L]

 </IfModule>

您的實現幾乎沒有問題,我建議只做一些小的修改:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^/?(.+)/(.+)$ /file1.php?a=$1&b=$2 [END]

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^/?(.+)$ /file2.php?a=$1 [END]

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^/?(.+)$ $1.php [END]

但是,您沒有在問題中說明您在使用這些規則時面臨的實際具體問題是什么。 這就是為什么我們無法確定上述代碼是否能真正解決您的問題。

如果您在重寫工作時遇到一般問題,請確保已涵蓋以下幾點:

  • 確保在 http 服務器中實際加載並激活了重寫模塊。
  • 確保 http 服務器完全考慮分布式配置文件(“.htaccess”)。
  • 確保您的配置文件位於 http 服務器主機配置中指定的DOCUMENT_ROOT文件夾內。 確保它可以被 http 服務器進程讀取。
  • 密切監視您的 http 服務器的錯誤日志文件。
  • 始終從全新的匿名瀏覽器 window 發出測試請求。

暫無
暫無

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

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