.htaccess博客的漂亮网址

i2byvkas  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(164)

我需要一个帮助的博客,这是在核心php,并希望创建一个漂亮的网址使用。
我有一个名为blog的文件夹,其中有两个文件。
index.php这是一个博客页面post.php这显示一个单独的博客文章
所以我想达到目的是
https://example.com/blog/
它显示index.php中的数据
在post.php上,我使用url slug而不是使用id来获取数据,所以如果有人写
https://example.com/blog/my-blogpost-url-slug
它需要调用post.php,它有逻辑来获取url,所以它将被post。php?url=my-blogpost-url-slug将被转换为https://example.com/blog/my-blogpost-url-slug
基本上
https://example.com/blog/index.php应该像www.example.com一样打开example.com/blog/https://example.com/blog/post?url=mypost-url-slug应该像https://example.com/blog/mypost-url-slug一样打开
下面的代码我试过,但它是不工作...
所有的index.php都被重定向到post.php,并且url参数获取的值是post.php而不是slug url

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

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

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]

RewriteRule ^([\S\s/+.]+)/?$ post.php?url=$1 [NC,L]
bogh5gae

bogh5gae1#

使用显示示例,请尝试以下.htaccess规则文件

请确保:

  • 把你的.htaccess规则文件和你的博客文件夹放在沿着(不要放在里面,放在旁边)。
  • 请确保在测试URL之前清除浏览器缓存。
RewriteEngine ON
##Rules for redirecting FROM https://example.com/blog/index.php TO example.com/blog/
RewriteCond %{THE_REQUEST} \s/(blog)/index\.php\s [NC]
RewriteRule ^ /%1? [R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^blog/?$ blog/index.php [NC,L]

##Rules for redirecting FROM https://example.com/blog/post?url=mypost-url-slug TO https://example.com/blog/mypost-url-slug
RewriteCond %{THE_REQUEST} \s/(blog)/post\.php\?(\S+)\s [NC]
RewriteRule ^ /%1/%2? [R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^blog/([^/]*)?$ blog/post.php?url=$1 [NC,L]

相关问题