我需要一些幫助來將我的靜態.htaccess規則轉換為動態規則。這是規則的定義:
#Redirect the request of file inside folder 'agencias/pagina_agencia/' to the base root URL
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.avantitecnologiati.com.br
RewriteRule ^teste2 agencias/pagina_agencia/teste2.php [L,QSA]
每當有人請求頁面:[www.avantitecnologiati.com.br/teste2] 時,htaccess 規則會自動讀取位于以下路徑的名為“teste2.php”的檔案:[ww??w.avantitecnologiati.com.br/agencias/pagina_agencia /teste2.php] 一切正常嗎?
不,我有兩個問題;(
- 每次在名為“agencias/pagina_agencia/”的檔案夾中添加一個新檔案時,我都需要創建一個新行,例如:
RewriteRule ^teste3 agencias/pagina_agencia/teste3.php [L,QSA]
這不起作用,因為我將在檔案夾“目錄”中創建 10k 個檔案......
- 如果用戶直接請求 [
www.avantitecnologiati.com.br/agencias/pagina_agencia/teste2] ,則需要重定向到頁面 [www.avantitecnologiati.com.br/teste2] 并且不會顯示真實位置...
感謝您花時間閱讀我的問題;)
完整的HTACCESS代碼
RewriteEngine On
RewriteCond %{SERVER_PORT} 443
RewriteRule ^(.*)$ avantitecnologiati.com.br$1 [R=301,L]
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.avantitecnologiati.com.br
RewriteRule ^teste2 agencias/pagina_agencia/teste2.php [L,QSA]
RewriteRule ^teste3 agencias/pagina_agencia/teste3.php [L,QSA]
#Hide and Redirect Extension
RewriteEngine on
RewriteCond %{THE_REQUEST} ^[A-Z] \s. \.php\sHTTP/.
RewriteRule ^(. )\.php$ /$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/shtml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml xml
AddOutputFilterByType DEFLATE application/rss xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>
#Custom Error Page
ErrorDocument 404 http://www.avantitecnologiati.com.br/
嘗試使用 arkascha 規則時出現 302 錯誤,當我請求 url 時:
uj5u.com熱心網友回復:
在您的站點根目錄 .htaccess 中有這樣的(見內嵌注釋):
RewriteEngine On
# external redirect rule to remove /agencias/pagina_agencia/ from URLs
RewriteCond %{THE_REQUEST} \s/ agencias/pagina_agencia/(\S*)\sHTTP [NC]
RewriteRule ^ /%1 [L,R=301]
#Hide and Redirect Extension
RewriteCond %{THE_REQUEST} ^[A-Z] \s. \.php\sHTTP
RewriteRule ^(. )\.php$ /$1 [R=301,L]
# internal rewrite from root to /agencias/pagina_agencia/
RewriteCond %{HTTP_HOST} avantitecnologiati [NC]
RewriteCond %{DOCUMENT_ROOT}/agencias/pagina_agencia/$1.php -f
RewriteRule ^([\w-] )/?$ agencias/pagina_agencia/$1.php [L]
# add .php extension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(. ?)/?$ $1.php [L]
請注意在 HTML 中包含資源的相對 URL:
您可能會遇到人們在切換到漂亮的 URL 方案時面臨的最常見問題,即使用相對路徑時找不到資源。簡單的解決方案是在您的 css、js、影像檔案中使用絕對路徑而不是相對路徑。這意味著您必須確保這些檔案的路徑以http://或 斜杠開頭/。
否則,您可以將其添加到<head>頁面 HTML 標記的正下方:<base href="/" />這樣每個相對 URL都是從該基本 URL 而不是從當前頁面的 URL 決議的。
uj5u.com熱心網友回復:
這可能是您正在尋找的內容:
RewriteEngine on
RewriteRule ^/?directory/([^/] )\.php$ /$1 [R=301,L]
RewriteCond %{REQUEST_URI} !^/directory/
RewriteRule ^ /directory%{REQUEST_URI}.php [L]
最好從R=302 臨時重定向開始,并在一切正常后才將其更改為R=301 永久重定向。這可以防止討厭的快取問題......
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/360520.html
