Question

J'utilise l'hébergement partagé avec IIS7 et le support de PHP. J'essaie de lancer un blog wordpress avec "jolies urls". (en supprimant index.php). Le fournisseur d'hébergement ne veut pas installer le module URLRewrite, cette option n'est donc pas disponible pour moi. J'ai trouvé un plugin pour wordpress qui supprime l'index.php des URL de permalien et modifier la page 404 en index.php est censé faire l'affaire ... cela ne fonctionne pas non plus.

Je connais bien la réécriture d'URL pour un site Web ASP.NET, mais je ne sais pas comment procéder pour PHP. La configuration de l'hébergement semble prendre en charge ASP.NET et PHP en même temps. Je pense donc qu'il serait possible d'exécuter le code de réécriture via ASP.NET, mais je ne sais pas comment s'y prendre.

Quelqu'un at-il une expérience avec cela ou des idées sur la meilleure approche à adopter. Si quelque chose me conduit dans la bonne direction ou si je le découvre moi-même, je serai plus qu'heureux de partager le code ici pour toute autre personne qui pourrait en avoir besoin.

Était-ce utile?

La solution 2

Merci à tous pour vos suggestions.

Mon hôte a fini par installer IIRF et tout a fonctionné comme un charme. Il existe un fichier appelé IsapiRewrite4.ini pour les règles de réécriture. Pour que mon installation Wordpress s'exécute sans l'index.php dans l'URL, tout ce que je devais faire était d'ajouter:

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

La première ligne autorise les requêtes pour un fichier sitemap.xml. La deuxième ligne traite de la suppression de index.php de l’URL. Cela semble aller également du point de vue des performances, je n’ai jamais rencontré de problème avec les pages réagissant lentement.

J'espère que cela aidera quelqu'un d'autre qui a besoin de fonctionnalités similaires.

Autres conseils

J'utilise le ManagedFusion Url Rewriter et une page d'erreur 404 personnalisée sur mon blog .

Le gestionnaire d’URL ManagedFusion nécessite un fichier nommé ManagedFusion.Rewriter.rules qui imite .htaccess. J’ai dû jouer assez souvent pour le résoudre correctement. Je vais donc inclure ce que j’ai dans le mien:

#  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

Les règles gèrent les jolies URL, suppriment le site Web et redirigent plusieurs anciennes URL d'un blog précédent.

J'ai également un fichier "404.php". que j’ai configuré comme page d’erreur 404 personnalisée. Ce n'est pas nécessaire pour les jolies URL, mais vous permettra d'utiliser la page wordpress 404 dans des thèmes personnalisés. Voici le contenu:

<?php
$qs = 

J'utilise le ManagedFusion Url Rewriter et une page d'erreur 404 personnalisée sur mon blog .

Le gestionnaire d’URL ManagedFusion nécessite un fichier nommé ManagedFusion.Rewriter.rules qui imite .htaccess. J’ai dû jouer assez souvent pour le résoudre correctement. Je vais donc inclure ce que j’ai dans le mien:

#  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

Les règles gèrent les jolies URL, suppriment le site Web et redirigent plusieurs anciennes URL d'un blog précédent.

J'ai également un fichier "404.php". que j’ai configuré comme page d’erreur 404 personnalisée. Ce n'est pas nécessaire pour les jolies URL, mais vous permettra d'utiliser la page wordpress 404 dans des thèmes personnalisés. Voici le contenu:

<*>

J'espère que ça aide. Cela a très bien fonctionné pour moi jusqu'à présent.

-Rob

Mise à jour: je viens de publier un article de blog sur mon expérience d'utilisation de WordPress sur IIS7

SERVER['QUERY_STRING']; $pos = strrpos($qs, '://'); $pos = strpos($qs, '/', $pos + 4);

J'utilise le ManagedFusion Url Rewriter et une page d'erreur 404 personnalisée sur mon blog .

Le gestionnaire d’URL ManagedFusion nécessite un fichier nommé ManagedFusion.Rewriter.rules qui imite .htaccess. J’ai dû jouer assez souvent pour le résoudre correctement. Je vais donc inclure ce que j’ai dans le mien:

#  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

Les règles gèrent les jolies URL, suppriment le site Web et redirigent plusieurs anciennes URL d'un blog précédent.

J'ai également un fichier "404.php". que j’ai configuré comme page d’erreur 404 personnalisée. Ce n'est pas nécessaire pour les jolies URL, mais vous permettra d'utiliser la page wordpress 404 dans des thèmes personnalisés. Voici le contenu:

<*>

J'espère que ça aide. Cela a très bien fonctionné pour moi jusqu'à présent.

-Rob

Mise à jour: je viens de publier un article de blog sur mon expérience d'utilisation de WordPress sur IIS7

SERVER['REQUEST_URI'] = substr($qs, $pos);

J'utilise le ManagedFusion Url Rewriter et une page d'erreur 404 personnalisée sur mon blog .

Le gestionnaire d’URL ManagedFusion nécessite un fichier nommé ManagedFusion.Rewriter.rules qui imite .htaccess. J’ai dû jouer assez souvent pour le résoudre correctement. Je vais donc inclure ce que j’ai dans le mien:

#  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

Les règles gèrent les jolies URL, suppriment le site Web et redirigent plusieurs anciennes URL d'un blog précédent.

J'ai également un fichier "404.php". que j’ai configuré comme page d’erreur 404 personnalisée. Ce n'est pas nécessaire pour les jolies URL, mais vous permettra d'utiliser la page wordpress 404 dans des thèmes personnalisés. Voici le contenu:

<*>

J'espère que ça aide. Cela a très bien fonctionné pour moi jusqu'à présent.

-Rob

Mise à jour: je viens de publier un article de blog sur mon expérience d'utilisation de WordPress sur IIS7

SERVER['PATH_INFO'] =

J'utilise le ManagedFusion Url Rewriter et une page d'erreur 404 personnalisée sur mon blog .

Le gestionnaire d’URL ManagedFusion nécessite un fichier nommé ManagedFusion.Rewriter.rules qui imite .htaccess. J’ai dû jouer assez souvent pour le résoudre correctement. Je vais donc inclure ce que j’ai dans le mien:

#  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

Les règles gèrent les jolies URL, suppriment le site Web et redirigent plusieurs anciennes URL d'un blog précédent.

J'ai également un fichier "404.php". que j’ai configuré comme page d’erreur 404 personnalisée. Ce n'est pas nécessaire pour les jolies URL, mais vous permettra d'utiliser la page wordpress 404 dans des thèmes personnalisés. Voici le contenu:

<*>

J'espère que ça aide. Cela a très bien fonctionné pour moi jusqu'à présent.

-Rob

Mise à jour: je viens de publier un article de blog sur mon expérience d'utilisation de WordPress sur IIS7

SERVER['REQUEST_URI']; include('index.php'); ?>

J'espère que ça aide. Cela a très bien fonctionné pour moi jusqu'à présent.

-Rob

Mise à jour: je viens de publier un article de blog sur mon expérience d'utilisation de WordPress sur IIS7

Changer la page 404 en index.php est supposé faire l'affaire. Sinon, le plug-in risque de ne pas prendre en charge IIS.

Il existe un xml " web.config " fichier dans IIS qui fait ce que .htaccess fait dans Apache HTTPD. (c.-à-d. remplacer le paramètre du serveur Web par un fichier de configuration statique). Il est largement utilisé dans les applications ASP.NET.

Veuillez lire Activer les erreurs personnalisées dans WordPress sur IIS 7.0 Si cela ne fonctionne pas non plus, vous pouvez essayer de demander à votre fournisseur de services de le configurer pour vous. Ils peuvent configurer ce paramètre via l'interface graphique de la console de gestion IIS.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top