繁体   English   中英

htaccess和漂亮的链接

[英]htaccess and pretty links

我正在尝试编写一个简单的博客,在我找到漂亮的链接之前,它的工作情况很好。

我想做的是使用mysite.com/blog/this_post之类的URL,并将其作为url参数传递到index.html文件中,因此index.html?blog = this_post

到处搜索,发现了一堆htaccess代码,但大多数都没有用。 我确实找到了一种尝试工作的解决方案,但由于某种原因未正确执行。 (带有和不带有Options + FollowSymLinks部分)

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^blog/(.*) /blog/index.html?blog=$1

当我使用它时,我会在URL中获得/blog/index.html?blog=index.html而不是保留/ blog / this_post并将其移植到index.html中,如预期的那样。 服务器上的某些内容可能设置不正确吗? 博客的其他所有内容都像魅力一样运作,但是脚本没有任何问题,只是使漂亮的链接正常工作。

看了一个较旧的站点,该站点具有wordpress并复制了该htaccess代码,但它执行的操作相同。 此处和其他站点上的所有其他搜索都指向上面相同的解决方案或wordpress,但由于某种原因,它会将index.html传递给脚本,而不是按预期方式传递了最后一个url段“ this_post”。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.html [L]
</IfModule>
# END WordPress

应该发生的是用户输入

mysite.com/blog/this_post

正确保留在地址栏中的哪个? 但是htaccess文件会提取this_post并将其作为参数传递给index.html脚本。 上面的示例应该这样做。 为什么将地址栏更改为

mysite.com/blog/index.html?blog=index.html 

我不确定为什么

旁注,因为我之前有这个...是的,我知道使用.php扩展名,但是.html是一个客户端,要求他们不要花钱。

编辑-可能重复的链接是我已经找到并试图获取当前RewriteRule的链接,但仍无法正常工作。

最好的方法是使事情变得简单:

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^([^/]*)\.html$ index.php?blog=$1 [L]

Options -MultiViews
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]

那么您可以使用以下网址:

mysite.com/this_post

等于:

mysite.com/index.php?blog=this_post

这样,您既可以拨打电话,也可以正常工作。

通常,您首先需要确定希望SEO URL的外观,然后需要设置.htaccess正则表达式和规则。

注意:不能将.html用于GET调用。 您可以将.php文件用于您的作品,并使用$_GET['blog']从URL中提取数据。

似乎找到了有效的组合,[NC,L]标志组合不断给我崩溃错误,所以我只剩下[NC]。 在根帐户目录中拥有它似乎也不起作用,因此我进入了Web目录(public_html),现在可以使用了。

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^blog/(.*) /blog/index.html?blog=$1 [NC]

仍然不确定为什么L标志使我在页面上发生服务器崩溃,或者为什么在根目录中不起作用而将其移到public_html文件夹中却起作用,这是否可能是我忽略的服务器配置问题?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM