使用.htaccess(不是wordpress)

时间:2017-11-14 00:55:09

标签: php .htaccess mod-rewrite

我是学习HTACCESS的新手,我正在努力研究网站网址,使其更加“seo友好”并正确加载。我已经尝试过搜索我需要指向正确方向的东西,但似乎所有东西都是“wordpress”,这是一个自定义构建的网站。

这是我的问题。这个网站有一个以前的开发人员,事情是一团糟,我花了无数个小时清理网站,他建立了网站,以显示这样的网址。 “www.sitename.com/about-us.php”

我对htaccess非常熟悉,知道如何删除.php的尾随扩展名,甚至可以正确显示尾随变量,最后不需要尾随斜杠,如:“sitename.com/about-us?contact =真“

我能够通过这样的网址加载博客视图页面:“sitename.com/posts/post-name-here/”。这个确实需要尾部斜杠。

我正在努力实现的是使url字符串能够正常处理几个页面的尾随变量,例如register,apply等。所以这些url就是这样的。 “sitename.com/auth/apply”或“sitename.com/auth/register”

我的问题是网址最后必须有一个尾部斜杠,否则它不会加载。

另外,添加尾随变量只有在这样格式化时才有效:“sitename.com/auth/apply/?application=submitted”

我希望它看起来更像这样。 “sitename.com/auth/apply?application=submitted”,没有尾部斜杠。但我找不到如何做到这一点。

这是我的.htaccess片段。

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^posts\/(.*)/$ /view-post.php?post=$1 [QSA,NC,L]
RewriteRule ^auth\/(.*)/$ /auth-action.php?action=$1 [QSA,NC,L]
RewriteRule ^([^\.]+)$ $1.php [NC,L]

有人可以帮助我,还是指向正确的方向?

2 个答案:

答案 0 :(得分:1)

这应该是您想要的。

#Options +FollowSymLinks
Options -Indexes
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*) index.php [QSA,NC,L]

答案 1 :(得分:0)

尝试在.htaccess中使用以下内容。这将从您的网址中删除尾随斜杠。

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [R=302,L]

确保在测试之前清除缓存。您会注意到我设置了R=302而不是301。这使其成为临时重定向用于测试目的。如果您对重定向感到满意,请将其更改为301以使其永久化。