2012-01-03 4 views
0

Cela fonctionne:.htaccess: URL Rewriting Pagination

RewriteRule ^newest/?$ index.php?type=newest 

Cela ne fonctionne pas:

RewriteRule ^newest/(\d+)*/?$ ./index.php?type=newest&p=$1 

Le reste de ma ré-écriture:

IndexIgnore * 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 

Cela fonctionne sur mon localhost exécutant xampp, mais cela ne fonctionne pas sur mon hébergeur. Quel pourrait être le problème avant de les contacter?

Répondre

1

Deux ou trois choses à vérifier ...

Vous devrez peut-être activer htaccess dans votre fichier de configuration apache (httpd.conf) décommenter les suivantes:

;LoadModule rewrite_module modules/mod_rewrite.so 

Assurez-vous que l'entrée du répertoire dans httpd.conf pour votre serveur ne contient pas

AllowOverride None 

car cela empêchera l'utilisation du fichier .htaccess dans le répertoire individuel. Il devrait ressembler à ceci (notez le AllowOverride All)

<Directory /var/www/www.mysite.com> 
    Options FollowSymLinks 
    AllowOverride All 
    Order deny,allow 
    Deny from all 
    Satisfy all 
</Directory> 

également dans httpd.conf, assurez-vous que .htaccess est en fait le nom apache attend des fichiers d'accès. La directive AccessFileName peut spécifier cette valeur. Par exemple:

<virtualhost> 
    ServerName www.mysite.com 
    DirectoryRoot /var/www/www.mysite.com 
    AccessFileName .customhtaccess 
</virtualhost> 

Si la directive AccessFileName est définie sur quelque chose de différent, un fichier .htaccess ne sera pas analysé.

0

Quelle est votre intention avec cette règle

RewriteRule^plus récent/(\ d +) * /? $ ./index.php?type=newest & p = 1

$ Si elle est de faire correspondre 0 ou plusieurs chiffres, il devrait être

RewriteRule^Date/(\ d) */index.php? $? type = Date & p = 1 $ [NC, L]

Si elle est de faire correspondre 1 ou plusieurs chiffres, il devrait être

RewriteRule^plus récent/(\ d) +/index.php? $? Type = plus récent & p = 1 $ [NC, L]

0

Pourquoi n'utilisez-vous pas un moyen plus efficace de le faire.Je recommande d'utiliser ce modèle:

RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 

Pour rediriger toutes les requêtes à votre fichier d'index, alors vous êtes en mesure d'analyser les URL et faire ce que yo besoin. Ce n'est pas la correction pour votre question, mais ce serait une façon alternative d'éviter votre type de travail.