誰能幫助我使用 .htaccess 從 URL 中洗掉查詢字串
當前網址
xyz.com/blog-detail?slug=slugvalue
我想要這種型別的網址
xyz.com/blog-detail/slugvalue
基本上我想要 URL 中的 slug 值并從 URL 中洗掉引數
這是我的代碼:
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
<ifmodule mod_deflate.c>
# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddOutputFilterByType DEFLATE image/svg xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
# Remove browser bugs (only needed for really old browsers)
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
</ifmodule>
# BEGIN Expire headers
<IfModule mod_expires.c>
# # Turn on the module.
ExpiresActive on
# Set the default expiry times.
ExpiresDefault "access plus 2 days"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/svg xml "access 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/ico "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType text/html "access plus 600 seconds"
</IfModule>
這是我所有的 htaccess 檔案代碼
# check to see if the request is for a PHP file:
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/?(.*)$ /$1.php [L]
RewriteRule ^(.*)index\.(php|html?)$ /$1 [R=301,NC,L]
請檢查我檔案的所有上述代碼
請幫我解決我的問題
uj5u.com熱心網友回復:
對于您顯示的示例,請嘗試遵循 htaccess 規則。請確保將這些規則放在 htaccess 檔案的頂部。
還要確保在測驗 URL 之前清除瀏覽器快取。
RewriteEngine ON
##Checking condition and getting matches in variables to be used while redirect in next rule.
RewriteCond %{THE_REQUEST} \s([^?]*)\?slug=(\S )\s [NC]
RewriteRule ^ %1/%2? [R=301,L]
##Internal rewrite to php file for frontend request:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(?:[^/]*)/(.*)/?$ blog-detail.php?slug=$1 [QSA,L]
JS/CS 重寫/重定向:
您可能需要使用 base 標簽來修復您的 js 和其他相關資源。如果您使用相對路徑鏈接 js 檔案,那么該檔案顯然會得到 404,因為它正在尋找 URL 路徑。例如,如果 URL 路徑是 /file/ 而不是 file.html,那么您的相關資源將從 /file/ 加載,這不是目錄而是重寫的 html 檔案。要解決此問題,請使您的鏈接成為絕對鏈接或使用基本標簽。在您的網頁標題中添加此<base href="/">內容,以便您的相關鏈接可以從正確的位置加載。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/425148.html
