[英][edit]How can I rewrite my URL with .htaccess according to these needs?
我已經使用.htaccess
文件嘗試了一些配置,但我真的無法找出問題所在。
我是.htacces文件的新手,我只想要1個簡單的重寫。
我該如何重寫:
~/Pages
文件夾中 http://host.com/Pages/page.php
: http://host.com/Pages/page.php
http://host.com/page
: http://host.com/page
~/Pages/Folder/page.php
變為: http://host.com/Folder/page
: ~/Pages/Folder/page.php
我也希望人們可以導航而不必考慮URL欄中的大寫字母。
提前致謝。
編輯:
好的,我刪除了擴展名。 現在我試圖指向〜/ Pages / index.php
有人訪問網址http://HOST.com/index時
這是我到目前為止所得到的:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /urenreg/
## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php[\s?] [NC]
RewriteRule ^ %1 [R=301,L]
# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_URI} !urenreg/Pages/
RewriteCond ^(.+?)?$ Pages/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)?$ /$1.php [L]
問題:它一直指向/ urenreg / pages,並且未在鏈接中輸入文件名(懷疑)
例如
從以下位置移動您的.php文件:
public_html/*.php
至:
public_html/gta/*.php
發生的情況是您正在訪問:
http://domain.com/gta/about
然后嘗試在以下位置找到.php文件:
http://domain.com/gta/about.php
鑒於所有文件都在文件夾gta上,因此您可以准確地擁有.htaccess文件,但必須將其放在public_html文件夾中,並且gta文件夾內不應有.htaccess文件:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php[\s?] [NC]
RewriteRule ^ %1 [R=301,L]
# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ /$1.php [L]
這就是我最終的方式。
Options +FollowSymLinks -MultiViews -Indexes
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /urenreg/
## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php[\s?] [NC]
RewriteRule ^ %1 [R=301,L]
# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/urenreg/$1.php -f
RewriteRule ^(.+?)/?$ /urenreg/$1.php [L]
RewriteCond %{REQUEST_URI} !lib/
RewriteCond %{REQUEST_URI} !dist/
RewriteCond %{REQUEST_URI} !js/
RewriteCond %{REQUEST_URI} !grunt/
RewriteCond %{REQUEST_URI} !less/
RewriteCond %{REQUEST_URI} !test-infra/
RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteCond %{REQUEST_URI} !urenreg/Pages/
RewriteRule (.*) Pages/$1/ [L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.