web-dev-qa-db-fra.com

Les liens permanents vers la personnalisation ne fonctionnent pas (hors de la boîte)

J'ai essayé de changer le mode de .htaccess dans le dossier wordpress en 644. Pourtant, je reçois

Not Found
The requested URL /wordpress/features/ was not found on this server.

Je n'arrête pas de lire sur la réorganisation de mon .htaccess pour que Permalinks fonctionne. Incapable de comprendre.

Voici les détails de mon .htaccess

# Comment
DirectoryIndex index.html index.htm index.php
<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /wordpress/
        RewriteCond %{QUERY_STRING} (^|\?|&)s2member_file_download\=.+
        RewriteRule .* - [E=no-gzip:1]
</IfModule>
# BEGIN FlexiCache Standalone
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_Host}        localhost$
    RewriteCond %{REQUEST_METHOD}   GET
    RewriteCond %{REQUEST_URI}      !^/wp-
    RewriteCond %{HTTP_COOKIE}      !(wordpress_logged_in|comment_author|wp-postpass)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d [OR]
    RewriteCond %{REQUEST_URI}      ^/$
    RewriteRule ^(.*)               wp-content/plugins/flexicache/standalone.php [L]
</IfModule>
# END FlexiCache Standalone
# BEGIN W3TC Browser Cache
<IfModule mod_deflate.c>
    <IfModule mod_setenvif.c>
        BrowserMatch ^Mozilla/4 gzip-only-text/html
        BrowserMatch ^Mozilla/4\.0[678] no-gzip
        BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
        BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
    </IfModule>
    <IfModule mod_headers.c>
        Header append Vary User-Agent env=!dont-vary
    </IfModule>
    <IfModule mod_filter.c>
        AddOutputFilterByType DEFLATE text/css application/x-javascript text/x-component text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon
    </IfModule>
</IfModule>
<FilesMatch "\.(css|js|htc|CSS|JS|HTC)$">
    <IfModule mod_headers.c>
        Header set Pragma "public"
        Header set Cache-Control "max-age=31536000, public, must-revalidate, proxy-revalidate"
    </IfModule>
    FileETag None
    <IfModule mod_headers.c>
         Header set X-Powered-By "W3 Total Cache/0.9.2.4"
    </IfModule>
</FilesMatch>
<FilesMatch "\.(html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|HTML|HTM|RTF|RTX|SVG|SVGZ|TXT|XSD|XSL|XML)$">
    <IfModule mod_headers.c>
        Header set Pragma "public"
        Header set Cache-Control "max-age=3600, public, must-revalidate, proxy-revalidate"
    </IfModule>
    FileETag None
    <IfModule mod_headers.c>
         Header set X-Powered-By "W3 Total Cache/0.9.2.4"
    </IfModule>
</FilesMatch>
<FilesMatch "\.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|wav|wma|wri|xla|xls|xlsx|xlt|xlw|Zip|ASF|ASX|WAX|WMV|WMX|AVI|BMP|CLASS|DIVX|DOC|DOCX|EOT|EXE|GIF|GZ|GZIP|ICO|JPG|JPEG|JPE|MDB|MID|MIDI|MOV|QT|MP3|M4A|MP4|M4V|MPEG|MPG|MPE|MPP|OTF|ODB|ODC|ODF|ODG|ODP|ODS|ODT|OGG|PDF|PNG|POT|PPS|PPT|PPTX|RA|RAM|SVG|SVGZ|SWF|TAR|TIF|TIFF|TTF|TTC|WAV|WMA|WRI|XLA|XLS|XLSX|XLT|XLW|Zip)$">
    <IfModule mod_headers.c>
        Header set Pragma "public"
        Header set Cache-Control "max-age=31536000, public, must-revalidate, proxy-revalidate"
    </IfModule>
    FileETag None
    <IfModule mod_headers.c>
         Header set X-Powered-By "W3 Total Cache/0.9.2.4"
    </IfModule>
</FilesMatch>
# END W3TC Browser Cache

# BEGIN s2Member GZIP exclusions
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /wordpress/
    RewriteCond %{QUERY_STRING} (^|\?|&)s2member_file_download\=.+
    RewriteRule .* - [E=no-gzip:1]
</IfModule>
# END s2Member GZIP exclusions

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

# END WordPress
# BEGIN Security advice from http://www.problogdesign.com/wordpress/11-best-ways-to-improve-wordpress-security/
# 8 – No Directories Should be Available for Browsing
# By default in most hosting, index of directories are shown in web browsers. This has a purpose but it also means that you reveal the content of any directory that has no index.html or index.php.

# Modifying this behavior is easy with Apache, just add the following line of code to the .htaccess file in the root directory (In the same place as the wp-config.php file).
Options All -Indexes
# END Security advice

Edit: Désactive tous les plugins, le Sudo a2enmod rewrite et le Sudo /etc/init.d/Apache2 restart. Permaliens activés, rafraîchi la page. Le fichier .htaccess a été créé automatiquement. La page d'accueil s'affiche correctement (comme toujours), aucune des autres pages/liens ne fonctionne. Je l'ai essayé sur mon localhost. Mon site est hébergé sur www.mcruiseon.com

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# END WordPress
4
Siddharth

On dirait que la directive Allow Override est toujours définie sur NONE pour votre VHOST.

Par défaut, cette option est désactivée. Ainsi, même si vous activez mod_rewrite via Sudo a2enmod rewrite, votre .htaccess sera ignoré.

Vous aurez envie de vous connecter à votre serveur (via Terminal/Shell), puis ...

Sudo nano /etc/Apache2/sites-available/default

recherchez dans le fichier:

<Directory /var/www/>
    AllowOverride None
    Options MultiViews FollowSymlinks
    Order allow,deny
    Allow from all
    Header Set Cache-Control no-cache
</Directory>

Remplacez AllowOverride par ALL

Ctrl + x et enregistrez le fichier

puis

Sudo Apache restart ou Sudo /etc/init.d/Apache2 restart

voir aussi http://drupal.org/node/134439

Faites-moi savoir si l'autorisation Permettre était désactivée s'il vous plaît?

3
Damien

Vous avez des règles de réécriture pour deux plugins de mise en cache différents et un membre s2. L'erreur que vous recevez signifie que WordPress ne traite même pas la demande. Je vous suggère de désactiver vos plugins, de sauvegarder votre fichier htaccess puis de le supprimer, puis de visiter votre page de paramètres de permaliens et de le sauvegarder pour que WordPress régénère vos règles de réécriture. S'il y a un problème d'autorisations avec votre fichier htaccess, vous verrez une erreur sur l'écran des permaliens. Testez vos permaliens pour voir s’ils fonctionnent, puis réactivez uniquement les plugins que vous utilisez , ce qui signifie que vous choisissez one caching plugin.

5
Milo

Cela me semble que mod_rewrite n'est pas activé sur votre serveur?

Si vous avez un accès Shell au serveur, essayez: Sudo a2enmod rewrite puis Sudo /etc/init.d/Apache2 restart

2
Alm

Avez-vous essayé de placer le dernier bloc en haut?.

Je pense que quelque part, vous vous retrouvez dans une sorte de boucle sans fin, ou cela n’atteint jamais la réécriture wordpress réelle.

Commencez à partir de zéro, avec seulement vos URL WordPress, pouvez-vous tester cela? et laissez-nous savoir si cela a fonctionné. et continuer à travailler à partir de là. Ça ne m'étonne pas que ça se gâche de ressembler à ça.

1
woony