首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重写本地主机和活动环境的规则

重写本地主机和活动环境的规则
EN

Stack Overflow用户
提问于 2015-10-09 18:33:34
回答 1查看 4.3K关注 0票数 3

我想添加在本地环境(localhost)和我的liveserver上工作的重写器。

为什么?

当我在本地测试我的项目并将其上传到liveserver时,我不想改变规则。

  1. 添加规则 这里有一个例子 (任意网址)index.php?page=somepage 更改为 (任意网址)/somepage 因此,我使用了一个rewritemod生成器并将其粘贴到其中: index.php?page=somepage 我得到的重写程序,看起来如下:(当然,我的.htacces从RewriteEngine开始) RewriteRule ^(^/*)$ /?page=$1 L 当我试图进入(http:) //localhost/myproject/development/index.php?page=login时,它会将我发送到本地开发环境的根目录。但是加法行中的URL没有改变。
  2. 测试 当然,我尝试了其他一些规则,将整个URL粘贴到生成器中,以测试重写是否有效。在这里,URL没有更改为short-url,但是服务器再也找不到样式表和javascripts了。我被重定向到index.php
  3. 可能的解决方案?
代码语言:javascript
复制
- Maybe it has something todo with that "RewriteBase"?
- Do i have to set a basepath?

我的.htacces位于这里:

代码语言:javascript
复制
//localhost/myproject/development/.htaccess

稍后,我还希望更改如下所示的路径:

代码语言:javascript
复制
(ANY-URL)index.php?page=somepage&second=hello&third=world&fourth=cool

另外,我正在寻找一种在这两种环境中都能工作的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-10 09:04:31

由于htaccess位于子目录中,所以请使用RewriteBase

代码语言:javascript
复制
RewriteEngine On
RewriteBase /myproject/development/

一旦完成,就可以在php/html文件中使用base元素。这将解析页面中脚本/样式表的地址。

代码语言:javascript
复制
<base href="/myproject/development/" />

现在,htaccess中的重写将是:

代码语言:javascript
复制
RewriteRule ^((?!index\.php)[^/]+)/?$ index.php?page=$1 [L]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33045018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档