2017-04-22 120 views
0

我使用的Apache 2.4.9重写URL APACHE 2.4.9 htaccess的

我想htaccess的重写的URL

https://localhost/balance.php/editbalance 

当我上面的URL输入应低于

显示像
https://localhost/editerapi/editbalance 

我都试过,但它不工作

RewriteEngine On # Turn on the rewriting engine 
RewriteRule ^editerapi/?$ balance.php [NC,L] 
RewriteCond %{REQUEST_URI} ^/editerapi [NC] 
RewriteRule ^.*/([^/]+)/? balance.php/$1 [L] #POST 

我重写引擎是

隐藏PHP扩展的下面代码工作

RewriteEngine On # Turn on the rewriting engine 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule^%1 [R=301,L] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*?)/?$ $1.php [QSA,L] 
+0

请看https://meta.stackexchange.com/questions/22186/how-do -i-格式我的代码块。 – chris85

+0

'RewriteRule^editerapi((?:/.*)?)$ balance.php $ 1 [NC,L]' – Deadooshka

回答

0

为了显示在浏览器栏新的URL,你必须重定向而不是重写,例如使用R|redirect标志

RewriteRule ^balance\.php/(.*)$ /editerapi/$1 [R,L] 

现在的客户端请求新的URL /editerapi/...,你必须重写

RewriteRule ^editerapi/(.*)$ /balance.php/$1 [L] 

为了防止重写回路,RewriteCond加入。现在重定向只发生,当请求balance.php

RewriteCond %{THE_REQUEST} " /balance\.php/" 

一切放在一起给

RewriteRule ^editerapi/(.*)$ /balance.php/$1 [L] 

RewriteCond %{THE_REQUEST} " /balance\.php/" 
RewriteRule ^balance\.php/(.*)$ /editerapi/$1 [R,L]