gpt4 book ai didi

asp.net - IIS7 上 WordPress 的 URL 重写

转载 作者:行者123 更新时间:2023-12-02 16:07:24 24 4
gpt4 key购买 nike

我正在使用带有 IIS7 的共享主机并支持 PHP。我正在尝试运行一个带有“漂亮网址”的 WordPress 博客(删除 index.php)。托管提供商不想安装 URLRewrite 模块,因此我无法使用该选项。我找到了一个 WordPress 插件,它可以从永久链接 URL 中删除 index.php,并将 404 页面更改为 index.php 应该可以解决这个问题……但这也不起作用。

我熟悉 ASP.NET 网站的 URL 重写,但我不确定如何针对 PHP 进行重写。托管设置似乎同时支持 ASP.NET 和 PHP,因此我认为可以通过 ASP.NET 运行重写代码,但我不确定如何进行。

是否有人对此有任何经验或对采取最佳方法有任何想法。如果有任何事情引导我走向正确的方向,或者如果我自己弄清楚了,我将非常乐意在这里与可能需要它的任何人分享代码。

最佳答案

我正在使用 ManagedFusion Url Rewriter 以及我的 blog 上的自定义 404 错误页面 .

ManagedFusion Url Rewriter 需要一个名为 ManagedFusion.Rewriter.rules 的文件来模仿 .htaccess,我必须花很多时间才能使其正确,所以我将包含我当前拥有的内容:

#  Managed Fusion Url Rewriter
# http://managedfusion.com/products/url-rewriter/
#
# Developed by: Nick Berardi
# Support: support@managedfusion.com
#
RewriteEngine on

#
# Place Rules Below
#

# misc WordPress rewrites
RewriteRule ^/wp-login\.php$ /wp-login.php [L]
RewriteRule ^/wp-comments-post\.php$ /wp-comments-post.php [L]
RewriteRule ^/wp-admin/(.*)$ /wp-admin/$1 [L]

# deny access to evil robots site rippers offline browsers and other nasty scum
RewriteCond %{HTTP_USER_AGENT} ^Anarchie [OR]
RewriteCond %{HTTP_USER_AGENT} ^ASPSeek [OR]
RewriteCond %{HTTP_USER_AGENT} ^attach [OR]
RewriteCond %{HTTP_USER_AGENT} ^autoemailspider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xenu [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus.*Webster [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule ^.* - [F,L]

# remove www
RewriteCond %{HTTP_HOST} ^www\.robboek\.com$ [NC]
RewriteRule ^(.*)$ http://robboek.com$1 [R=301]


# redirect old urls
RewriteRule ^/2008/12/blog-on-hold.html$ /2008/12/12/blog-on-hold/ [R=301]
RewriteRule ^/2008/11/google-chrome-wont-start-in-vista-x64\.html$ /2008/11/16/google-chrome-wont-start-in-vista-x64/ [R=301]
RewriteRule ^/2008/11/pass-community-summit-2008-events.html$ /2008/11/14/pass-community-summit-2008-events-calendar/ [R=301]
RewriteRule ^/2008/11/fort-stevens-camping-trip.html$ /2008/11/14/fort-stevens-camping-trip/ [R=301]
RewriteRule ^/2008/10/first-post.html$ /2008/10/10/first-post/ [R=301]
RewriteRule ^/blog/CommentView,guid,1d8cba50-0814-4c89-86df-eca669973e8e.aspx$ /2006/09/29/junctions-in-windows-vista/ [R=301]
RewriteRule ^/blog/2006/09/29/JunctionsInWindowsVista.aspx$ /2006/09/29/junctions-in-windows-vista/ [R=301]

# rewrite all nonexistent files and directories to use index.php for WordPress
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php$1

这些规则处理漂亮的网址,删除 www,并重定向以前博客中的几个旧网址。

我还有一个文件“404.php”,我已将其设置为自定义 404 错误页面。这对于漂亮的 url 来说不是必需的,但允许您在自定义主题中使用 wordpress 404 页面。内容如下:

<?php
$qs = $_SERVER['QUERY_STRING'];
$pos = strrpos($qs, '://');
$pos = strpos($qs, '/', $pos + 4);
$_SERVER['REQUEST_URI'] = substr($qs, $pos);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
include('index.php');
?>

我希望这会有所帮助。到目前为止,它对我来说效果很好。

-罗布

更新:我刚刚发布了 blog article on my experience using WordPress on IIS7

关于asp.net - IIS7 上 WordPress 的 URL 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/401744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com