URL重写隐藏文件夹名称从URL
我想重写我的网址,但仍然没有得到成功。我两天后搜索了Google,但没有成功。我粘贴我的.htaccess代码URL重写隐藏文件夹名称从URL
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_HOST} localhost [NC]
RewriteCond %{REQUEST_URI} !^/folder1/
RewriteRule ^(.*)$ /folder1/$1 [L]
这是我的目录:
localhost/project/index.php
在此页面
有两个按钮。如果一个按钮按下,它应该重定向到文件夹1/index.php文件否则,如果两个按钮按下那么它应该重定向文件夹2/index.php文件
localhost/project/folder1/index.php
localhost/project/folder2/index.php
Basically I don't want display folder1 or folder2 directory names.
any idea please thanks
实际工作中的网址,我想显示应该是这样的:
本地主机/项目/
我假设你想要的是浏览器请求/index.php,但服务器实际使用位于/folder1/index.php的文件,对不对?如果是这样,这应该工作:
确保apache mod_rewrite模块已安装。然后,用在你的Apache配置是这样的,虚拟主机配置,或.htaccess文件:
RewriteEngine On
RewriteRule ^/(.*)$ /folder1/$1
规则使用正则表达式,所以你可能想看看关于这一主题的参考,如果你不确定。阅读手册以获取关于其他指令(RewriteCond可能非常有用)或规则选项的更多信息。
我已经在我的代码中使用此规则,您可以看到最后一行的规则。 – Raheel 2013-05-02 07:36:08
我不相信你能够单独使用mod_rewrite来做你正在请求的东西。
的问题是你想1个文件改写为2个独立的位置:
/project/index.php -> /project/folder1/index.php
/project/index.php -> /project/folder2/index.php
有了这个逻辑,mod_rewrite的不知道是什么将客户点击,文件夹1或文件夹2。
为了实现您要查找的内容,您需要在客户端上设置一个cookie,指示他选择了“文件夹” - 然后使用PHP确定最佳操作。这是一个给你一个想法的例子。此代码不是生产准备好的。
/project/index.php:
$cookie_folder = $_COOKIE['folder'];
if($cookie_folder == "folder1") { $folder = 'folder1'; }
elseif($cookie_folder == "folder2") { $folder = 'folder2'; }
require_once('/absolute/path/to/project/' . $folder . '/index.php');
你需要告诉我们你喜欢什么网址每个文件夹显示为。您需要以某种方式区分这两个文件夹。 – 2013-05-02 07:24:04
执行url我想要显示应该是这样的: localhost/project/ – Raheel 2013-05-02 07:33:31
好的,文件名? localhost/project/folder1和localhost/project/folder2还是什么?你不能让localhost/project参考两个不同的位置。 – 2013-05-02 07:38:58