2015-11-15 74 views
1

我有我的网站的几个网页,主页包含一些链接的锚像这样:重写网站链接(锚,扩展)

  • mywebsite.com/homepage.php#six

    和其他页面只是PHP扩展这样的:

  • mywebsite.com/otherpage.php

如果我想删除主页上的斜线后的所有内容以及其他人的PHP扩展,我该怎么办?

+0

您是否在这些网页上使用php或其他技术?你为什么不把它们从源代码中移除? – koenpeters

+0

你能否用例子(之前和之后)和你想要发生的事情来澄清你想要的东西。到目前为止你尝试过什么,你遇到了哪些问题? – trincot

+0

@koenpeters我使用一些PHP。例如包括其他页面以发送表单。我如何从源代码中删除它们? –

回答

0

你可以在你的htaccess

RewriteEngine on 

RewriteRule ^$ /homepage.php#six [NE,L] 

#Remove php 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^([^/]+)/?$ /$1.php [NC,L] 

使用这将改写

http://example.com/ 

http://example.com/homepage.php#six 

第二条规则从文件中删除PHP扩展。

+0

如果我有几个锚链接的话,我需要使用多行吗?像这样RewriteRule^$ /homepage.php#one [NE,L] RewriteRule^$ /homepage.php#two[NE,L]? –

+0

不,你无法将你的主页指向多个#链接,而且你也无法使用多个重写规则,但是将http://example.com/one这样的网址改写为http://example.com/ homepage.php#一个可能。 – starkeen

+0

并且没有任何规则可以在example.com后删除所有内容吗?当我在页面上,然后点击定位符时,链接中没有任何内容出现,但是当我在另一个页面上时,使用index.php#2中的index.php#2例如返回到我的主页,例如我在地址栏中得到了example.com/index.php#two –

1
RewriteEngine On 

RewriteCond %{THE_REQUEST} ^GET\ /homepage\.php(\S*) [NC] 
RewriteRule^/%1 [R=301,L] 

RewriteCond %{THE_REQUEST} ^GET\ /(.+)\.php(\S*) [NC] 
RewriteRule^/%1%2 [R=301,L] 

RewriteRule ^/?$ /homepage.php [QSA,L] 

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.+)$ /$1.php [QSA,L] 
+0

这段代码删除了php的扩展名,但是当我在“其他页面”并返回主页时,链接是index.php#2,例如我得到了主页.com/index#two –

+0

@EmilGurbanov那是因为你想隐藏'homepage.php'。 – hjpotter92

+0

无论如何,即使我没有隐藏主页,我也无法摆脱锚点 –