.htaccess 重写本地主机和实时环境的规则
我想添加在本地环境(localhost)和我的liveserver上工作的重写规则 为什么? 当我在本地测试我的项目并将其上传到liveserver时,我不想更改规则.htaccess 重写本地主机和实时环境的规则,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,我想添加在本地环境(localhost)和我的liveserver上工作的重写规则 为什么? 当我在本地测试我的项目并将其上传到liveserver时,我不想更改规则 添加规则 这里有一个例子 (ANY-URL)index.php?page=somepage 改为 (ANY-URL)/somepage 因此,我使用了rewritemod生成器并将其粘贴到其中: index.php?page=somepage 我得到的重写规则如下:(当然,我的.htacces是以RewriteEngine打
(ANY-URL)index.php?page=somepage
改为
(ANY-URL)/somepage
因此,我使用了rewritemod生成器并将其粘贴到其中:
index.php?page=somepage
我得到的重写规则如下:(当然,我的.htacces是以RewriteEngine打开开始的)
当我尝试访问(http:)
//localhost/myproject/development/index.php?page=login
它将我发送到本地开发环境的根目录。但是地址行中的URL不会改变- 也许它和那个“基地”有什么关系
- 我必须设置基本路径吗
//localhost/myproject/development/.htaccess
稍后,我还想更改如下所示的路径:
(ANY-URL)index.php?page=somepage&second=hello&third=world&fourth=cool
此外,我正在寻找一种在两种环境下都能工作的解决方案。由于htaccess位于子目录中,请使用
RewriteBase
:
RewriteEngine On
RewriteBase /myproject/development/
完成后,在php/html文件中使用base
元素。这将解析页面中脚本/样式表的地址
<base href="/myproject/development/" />
谢谢所以我使用多个.htacces文件(在不同的子文件夹中)?@Fdev,如果你愿意的话。你也应该这样做:谢谢,到目前为止还有效。似乎它只适用于一个方向(从长到短的URL),我想我需要另一个重写规则来完成从短到长的URL的相同工作。PS:我不需要HTML中的base元素-只需在.htaccess文件中重写base:)当我将项目上载到时,我要对RewriteBase做什么?移除它?@Fdev是的!或者,您可以将其更改为
RewriteBase/
<base href="/myproject/development/" />
RewriteRule ^((?!index\.php)[^/]+)/?$ index.php?page=$1 [L]