[英]Use .htaccess to Redirect URL excluding image folder
我的public_html看起來如下→
1. / image / [目錄]
2. / scripts / [目錄]
3. index.php [文件]
4. Logo.jpg
其他文件也存在,例如php.ini,error_log等。
我想從數據庫表url_alis中搜索example.com/
seo-url ,為此我在scripts / get_url_info.php下編寫了代碼以獲取和輸出數據
但是其他任何文件
ico | gif | jpg | jpeg | png | js | css
在圖像和樣式下 (對於css)的文件夾在此規則下不應得到處理
我已經嘗試了很多,但是以下任何一個問題仍然存在
重定向使用.php擴展名處理,后跟seo-url (apple-mangoes.php),返回404
如果在script / get_url_info.php中查詢的db→url_alias表中mysqli_num_rows == 0
,則URL應指向example.com,這沒有發生。
我當前的.htaccess文件(對未協調的代碼表示歉意)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
RewriteRule ^([^?]*) scripts/get_url_info.php?url=$1 [L,QSA] # Process all products
RewriteRule ^/image/([^?]*) /image/$1/$2 [L,QSA]
RewriteRule ^(.*)$ /index.php [NC,L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
這里的基本要求是,如果網址僅指向文本(帶有(_,-,%,&) REQUEST_URI請求之類的符號, 沒有 /正斜杠或沒有包含顯示內容的文件夾,則應轉到我的get_url_info .php腳本通常會處理所有內容。
其他重要的先決條件-
強制HTTPS
強制www
如果找不到無效的URL或內容,則重定向到index.php
首先要滿足您的先決條件,請使用.HTACCESS文件中的以下代碼。
強制HTTPS:
### HTTP to HTTPS ###
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
強制www:
### Redirect from non-www to www version ###
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{http_host} ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,NC]
如果找不到無效的URL或內容,請重定向到index.php:
對於404錯誤,請使用以下代碼
### Custom Error Pages ###
Options -Indexes
ErrorDocument 404 /html/404-error.html
您想將它們重定向到主頁時,可以使用
ErrorDocument 404 /index.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.