2016-07-01 113 views
1

我从来没有真正使用国防部重新编写,我想了解实现它的最佳方式。删除.php扩展名。我发现这个代码国防部重写逻辑

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

的问题是,如果该链接是不会domain.com/index.php它重新写domain.com/index

另外,如果我做链接domain.com/索引的人仍然可以添加.php,它仍然正常工作。

我想知道正确的方法..我必须硬编码在HTML中的URL或有东西可以做到这一点自动?

我不希望他们能够将.PHP添加到末尾

+0

的可能的复制(http://stackoverflow.com/questions/10028025/how-can-i -use-htaccess-to-hide-php-url-extensions) – ldg

+0

您需要同时允许这两个条件,请参阅重复的答案。如果隐藏“.php”扩展名的目的是为了混淆php,你可能会考虑使用404代替或将所有扩展名路由到基本路由。如果是为了美化网址,那么[this](http://stackoverflow.com/questions/10028025/how-can-i-use-htaccess-to-hide-php-url-extensions)应该可以工作。 – ldg

回答

0

你需要一个额外的规则去除.php。你正在使用的规则只允许你访问没有扩展名的php文件,但不会删除扩展名。要删除.php您可以使用:[?我如何使用的.htaccess隐藏.PHP URL扩展名]

RewriteEngine on 
#1) redirect "/file.php" to "/file" 
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC] 
RewriteRule^/%1 [L,R,NE] 
#2) internally map "/file" back to "/file.php" 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 
+0

starkeen我如何将这个添加到http://localhost/site/profile/member.php?user = 1308到http:// localhost/site/profile/1308 – Amoro