2008-12-30 42 views
6

Tôi đang sử dụng chia sẻ lưu trữ với IIS7 và hỗ trợ cho PHP. Tôi đang cố gắng để chạy một blog wordpress với "đẹp url" (loại bỏ index.php). Nhà cung cấp dịch vụ lưu trữ không muốn cài đặt mô-đun URLRewrite, vì vậy tùy chọn đó không có sẵn cho tôi. Tôi tìm thấy một plugin cho wordpress mà sẽ loại bỏ index.php từ các URL permalink và thay đổi trang 404 thành index.php được cho là để làm các trick ... mà không phải là làm việc hoặc.Viết lại URL trên IIS7 cho Wordpress

Tôi quen thuộc với viết lại URL cho một trang web ASP.NET, nhưng tôi không chắc chắn làm thế nào tôi sẽ đi về nó cho PHP. Các thiết lập lưu trữ dường như hỗ trợ ASP.NET và PHP cùng một lúc, vì vậy tôi nghĩ rằng nó sẽ có thể chạy mã viết lại thông qua ASP.NET, nhưng tôi không chắc chắn làm thế nào để đi về nó.

Có ai có kinh nghiệm về điều này hay bất kỳ ý tưởng nào về cách tiếp cận tốt nhất để thực hiện. Nếu bất cứ điều gì dẫn tôi đi đúng hướng hoặc nếu tôi tự tìm ra, tôi sẽ vui hơn khi chia sẻ mã ở đây cho bất kỳ ai khác có thể cần nó.

Trả lời

4

Cảm ơn tất cả các đề xuất.

Máy chủ lưu trữ của tôi đã kết thúc cài đặt IIRF và nó hoạt động như một sự quyến rũ. Có một tập tin gọi là IsapiRewrite4.ini cho các quy tắc viết lại. Để có được cài đặt Wordpress của tôi chạy mà không có index.php trong URL, tất cả những gì tôi phải làm là thêm:

RewriteRule ^/sitemap.xml$ - [L] 
RewriteRule ^/(?!index.php)(?!wp-)(.*)$ /index.php/$1 

Dòng đầu tiên cho phép yêu cầu đối với tệp sitemap.xml.Dòng thứ hai xử lý việc xóa index.php khỏi URL. Dường như cũng tốt cho một quan điểm về hiệu suất, tôi chưa thấy bất kỳ vấn đề nào với các trang phản hồi chậm.

Hy vọng điều này sẽ giúp người khác cần có chức năng tương tự.

5

Tôi đang sử dụng ManagedFusion Url Rewriter và một trang lỗi tùy chỉnh trên blog tôi.

Trình ghi đè url của ManagedFusion yêu cầu tệp có tên là ManagedFusion.Rewriter.rules bắt chước .htaccess, tôi phải chơi với nó một chút để làm đúng, vì vậy tôi sẽ bao gồm những gì tôi hiện có trong mình:

# Managed Fusion Url Rewriter 
# http://managedfusion.com/products/url-rewriter/ 
# 
# Developed by: Nick Berardi 
#  Support: [email protected] 
# 
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 

Quy tắc xử lý các url đẹp, xóa www và chuyển hướng một số url cũ từ blog trước đó.

Tôi cũng có tệp "404.php" mà tôi đã thiết lập làm trang lỗi 404 tùy chỉnh của mình. Điều này là không cần thiết cho các url đẹp, nhưng sẽ cho phép bạn sử dụng trang 404 wordpress trong các chủ đề tùy chỉnh. Dưới đây là các nội dung:

<?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'); 
?> 

Tôi hy vọng điều đó sẽ hữu ích. Nó đã làm việc rất tốt cho tôi cho đến nay.

-Rob

Cập nhật: Tôi chỉ đăng tải một blog article on my experience using WordPress on IIS7

+0

Tôi hiện đang chờ để tìm hiểu lý do tại sao cài đặt 404 tùy chỉnh của tôi không hoạt động nhưng sau khi cài đặt đã được sửa, tôi sẽ thực hiện việc này. Cảm ơn! –

0

Thay đổi trang 404 đến index.php là nghĩa vụ phải làm các trick. Nếu không, plugin có thể không hỗ trợ IIS.

Có tệp xml "web.config" trong IIS thực hiện những gì .htaccess thực hiện trong Apache HTTPD. (tức là ghi đè cài đặt máy chủ web theo tệp cấu hình tĩnh). Nó được sử dụng rộng rãi trong ứng dụng ASP.NET.

Vui lòng đọc Enable custom errors in WordPress on IIS 7.0 Nếu cách này không hoạt động, bạn có thể thử yêu cầu nhà cung cấp dịch vụ đặt nó cho bạn. Chúng có thể định cấu hình cài đặt này thông qua giao diện quản lý giao diện điều khiển IIS.

Các vấn đề liên quan