我想将动态网址www.example.com/business-listing.php?id=7863
更改为www.example.com/some-dynamic-text/7863
。
此外,我想隐藏所有网址的.php扩展名,例如:网址www.example.com/list/page.php
应更改为www.example.com/list/page
此外,当用户输入网址www.example.com/list/page.php
时,他应该限制使用该网址访问该网页。仅允许使用
www.example.com/list/page
我尝试了以下.htaccess文件:
DirectoryIndex home.php
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^home$ home.php
RewriteRule ^(.*)\.html$ $1.php [nc]
RewriteRule ^([a-zA-Z0-9_,-]+)/([a-zA-Z0-9_,-]+)$ business-listing.php?id=$1
www.example.com/bill/pay.php
页面已打开时,但我想限制它。答案 0 :(得分:0)
试试这段代码:
RewriteRule ^$ - [L]
RewriteCond $1 ^(*\.php)
RewriteRule ^(.*)$ - [F,L]
RewriteRule ^/?([^\./]*)[:;,\.]*$ $1.php
RewriteRule ^list/(.*)$ business-listing.php?id=$1
如果您希望网址的“列表”部分动态,请尝试:
RewriteRule ^(.*)/(.*)$ business-listing.php?id=$2
答案 1 :(得分:0)
RewriteRule ^(.*)/(.*)$ business-listing.php?id=$2&second=$2 [R,NC,L]
试试这个!
答案 2 :(得分:0)
你不应该使用.htaccess。在这种情况下,迁移到nginx将非常痛苦。你还应该记住Front Controller Pattern。
URL应由PHP处理(python,ryby等...)。 url路由有很多现成的框架,还有很多很酷的东西,比如数据库api或模板引擎。在php世界中有很多变种。至于我,我更喜欢Silex microframework和Symfony2。 Yii和Zend2也值得一看。
例如,在silex中,您可以以一种很好的方式将函数绑定到url-pattern:
// web/index.php
require_once __DIR__.'/../vendor/autoload.php';
$app = new Silex\Application();
$app->get('/hello/{name}', function ($name) use ($app) {
return 'Hello '.$app->escape($name);
});
$app->run();
祝你好运。