htaccess 用最终的子文件夹重写 url
htaccess rewrite url with eventual subfolder
我有 url 个这样的:
https://mywonderfulsite.com/page
我的 .htaccess 将其重写为
https://mywonderfulsite.com/index.php?source=page
.htaccess 如下:
RewriteEngine on
RewriteBase /
RewriteRule \.(php)$ - [L]
RewriteRule ^index\.html$ - [L]
RewriteRule ^favicon\.ico$ - [L]
RewriteRule ^custom404\.html$ - [L]
RewriteRule ^custom500\.html$ - [L]
RewriteRule ^([^/]+)/?$ index.php?source= [L]
如果 url 包含类似
的子文件夹,这将失败
https://mywonderfuldomain.com/subfolder/anotherpage
应该变成
https://mywonderfuldomain.com/index.php?source=/subfolder/anotherpage
我似乎不知道如何处理这种情况。如何解决?
问题在于模式 ([^/]+)
匹配除 /
之外的任何内容。
这样使用:
RewriteEngine On
RewriteRule \.php$ - [L,NC]
RewriteRule ^(?:favicon\.ico|(?:index|custom500|custom404)\.html)$ - [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .+ index.php?source=[=10=] [L,QSA]
我有 url 个这样的:
https://mywonderfulsite.com/page
我的 .htaccess 将其重写为
https://mywonderfulsite.com/index.php?source=page
.htaccess 如下:
RewriteEngine on
RewriteBase /
RewriteRule \.(php)$ - [L]
RewriteRule ^index\.html$ - [L]
RewriteRule ^favicon\.ico$ - [L]
RewriteRule ^custom404\.html$ - [L]
RewriteRule ^custom500\.html$ - [L]
RewriteRule ^([^/]+)/?$ index.php?source= [L]
如果 url 包含类似
的子文件夹,这将失败
https://mywonderfuldomain.com/subfolder/anotherpage
应该变成
https://mywonderfuldomain.com/index.php?source=/subfolder/anotherpage
我似乎不知道如何处理这种情况。如何解决?
问题在于模式 ([^/]+)
匹配除 /
之外的任何内容。
这样使用:
RewriteEngine On
RewriteRule \.php$ - [L,NC]
RewriteRule ^(?:favicon\.ico|(?:index|custom500|custom404)\.html)$ - [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .+ index.php?source=[=10=] [L,QSA]