mod-rewrite 結合了兩種不同的重寫規則 (mod-rewrite combine two different rewrite rules)


問題描述

mod‑rewrite 結合了兩種不同的重寫規則 (mod‑rewrite combine two different rewrite rules)

我有以下重寫規則:

第一條規則:

RewriteCond %{REQUEST_FILENAME}.php ‑f
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1\.php

第二條規則:

RewriteCond %{REQUEST_FILENAME} !‑f
RewriteCond %{REQUEST_FILENAME} !‑d
RewriteRule ^([^/]+/.+)$ module.php?page=$1 [L,QSA]

第一條規則允許我訪問/myscript.php as myscript

第二條規則允許我獲取 mydomain.com/ 之後的所有內容並將其轉換為查詢字符串以加載 module.php?page=querystring。

但是,對於第一個規則如果我要訪問 /myscript/myscript 然後我得到一個內部服務器錯誤。此外,我似乎無法在同一代碼中運行規則 1 和 2。因為它似乎衝突。如果我去 mydomain.com/myscript/myscript 它似乎會干擾 myscript.php,我最終會得到一個結果 page=myscript/myscript.php/myscript

關於如何組合的任何建議兩個?

謝謝。


參考解法

方法 1:

Have it like this:

Options ‑MultiViews
RewriteEngine On

RewriteCond %{DOCUMENT_ROOT}/$1\.php ‑f
RewriteRule ^(.+?)/?$ $1.php [L]

RewriteCond %{REQUEST_FILENAME} !‑f
RewriteCond %{REQUEST_FILENAME} !‑d
RewriteRule ^([^.]+)/?$ module.php?page=$1 [L,QSA]

(by Ahmedanubhava)

參考文件

  1. mod‑rewrite combine two different rewrite rules (CC BY‑SA 2.5/3.0/4.0)

#url-rewriting #.htaccess #apache #mod-rewrite






相關問題

靜態內容域的 IIS 重定向規則 (IIS redirect rules for static content domains)

IIS 重寫模塊重寫映射性能 (IIS Rewrite Module rewrite map performance)

我返回集合的 Asp.net mvc 操作生成包含 system.linq.Enumerable 的 url,如何刪除它們 (My Asp.net mvc actions that return collection generate urls containing system.linq.Enumerable, how to remove them)

如何將查詢參數修改為路徑文件夾名稱? (How to mod_rewrite a query parameter to a path folder name?)

如何使用 .htaccess 將動態 URL 更改為 SEO 友好 (how to change the dynamic URL to SEO friendly using .htaccess)

AngularJS 和 URL 重寫為 HTTPS (AngularJS and URL Rewrite to HTTPS)

mod-rewrite 結合了兩種不同的重寫規則 (mod-rewrite combine two different rewrite rules)

htaccess 刪除 .php 擴展名並重寫為 www (htaccess remove .php extension and rewrite to www)

初學者 Apache URL 重寫問題 (Beginner Apache URL Rewrite Question)

.net datapager + listview + Intelligencia.UrlRewriter (.net datapager + listview + Intelligencia.UrlRewriter)

jquery get / post請求的Apache url替換 (Apache url replacement for jquery get / post request)

在python中解析url以提取參數 (Parsing url in python to extract parameters)







留言討論