2017-03-05 21 views
0

我要寻找一个解决方案,从我的网址的.htaccess隐藏PHP PARAM键,但不改变物理路径

例如/page1.php?city=Lahore

隐藏PARAM键我想它改写为/第1页/拉合尔

但最重要的是拉合尔不是目录存在服务器上,我希望它指向同一个文件只是page1.php中重写URL外部

感谢

+0

我有这个解决方案做的工作#RewriteCond%{THE_REQUEST} /(?:page1\.php)?\city=([^\s&]+)[NC] #RewriteRule^/page1.php/%1? [R = 302,L,NE] 但它尝试加载实际上不存在的目录Lahore –

回答

1

创建从根.htaccess文件并粘贴此代码

RewriteCond %{HTTP_HOST} ^(.*)$ [NC] 
RewriteRule ^page1/(.*)? /page1.php?city=$1 [L] 

,或者你也可以把它放在你的网站的Apache的conf文件。

+0

,但这将在“page1”上具体说明它不是通用的.. 如果您有“page1”,“page2”.. etc ... 你可以写^页(\ d)+ /(。*)? /page$1.php?city=$2 [L] –

+0

以及您刚分享的代码无法正常工作, 目前代码正在为我工​​作的是 –

+0

RewriteCond%{THE_REQUEST} /(?: page1 \ .php)?\? city =([^ \ s&] +)\ s [NC] RewriteRule^/m/en/page1.php/%1? [R = 302,L,NE] –

0

尝试.htaccess文件的代码

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase /projectfoldername/ 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^page1/(.+?)/?$ /projectfoldername/page1.php?key=$1 [L,QSA] 

代码page1.php中会

<?php 
echo $_REQUEST['key']; 
?> 

然后调用 http://localhost/projectfoldername/page1/1947

输出将是:1947年