2014-12-06 185 views
-1

我正在htaccess中重写我的url规则,并且还使用sefURL(SEO Friendly URL)。但有一个问题,URL重定向问题

当我要从我的网页链接它会生成友好的URL的URL,但如果我要在那里写直接文件名,那么我也想重定向在同一个URL'

例如,

在我的网页我有这么使用的htaccess它将指向我的服务器myfirsthtpage.php文件

现在,如果我写的网址这样http://www.exampleskey.com/myfirsthtpage.php所以它只会显示给我产生的http://www.exampleskey.com/myfirsthtpage URL链接一个相同的URL,但如果任何一个写在上面URL应该重定向到htaccess的http://www.exampleskey.com/myfirsthtpage。任何人都可以帮助我做到。

我也尝试过'RewriteCond',但没有得到正确的结果。

回答

-1
AddDefaultCharset UTF-8 
RewriteEngine on 
RewriteBase/
RewriteRule ^myfirsthtpage/?$ myfirsthtpage.php [L] 

复制粘贴此代码

+0

Thsnks兄弟。但它不会工作。它将我的URL指向php页面,而不是在运行时删除我的.php扩展名。 – KinjalMistry 2014-12-06 04:38:26

+0

只需复制粘贴此代码,然后访问http://www.exampleskey.com/myfirsthtpage并查看地址栏。它工作该死的酷。你也可以管理它的运行时间。我的完整用户门户网站适用于此规则。 – 2014-12-06 04:40:21

+0

你好伙计, 谢谢你。但你没有正确阅读我的问题。我想阻止用户使用'.php'扩展名。你说写和点击'exampleskey.com/myfirsthtpage' URL,这很酷它已经适合我。如果有人击中'exampleskey.com/myfirsthtpage.php',我想要一个人重定向到'exampleskey.com/myfirsthtpage'。 – KinjalMistry 2014-12-06 04:49:46

0

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On 
RewriteBase/

# To externally redirect /dir/file.php to /dir/file 
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.php[\s?] [NC] 
RewriteRule^/%1%2 [R=302,L,NE] 

# To internally forward /dir/file to /dir/file.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC] 
RewriteRule ^(.+?)/?$ /$1.php [L] 
+0

你好, 谢谢你。但它不工作。 – KinjalMistry 2014-12-06 05:55:29

+0

这是来自我的实时网站的测试代码和工作代码。您必须确保将其置于DOCUMENT_ROOT中,并且您没有其他规则或没有其他规则.htaccess – anubhava 2014-12-06 06:07:20

+0

而不是**不工作**类型的评论,您应该提供有关您遇到的问题的详细信息。你在浏览器中输入了什么URL以及这个.htaccess文件的位置是什么?你有什么错误? – anubhava 2014-12-06 06:12:53