Report this

What is the reason for this report?

Rewriting URL's Apache Server Blocks. Links Won't Work Only Homepage

Posted on May 26, 2018

I am unable to get any links other than the homepage to display without getting the following error.

“Not Found The requested URL /albums was not found on this server. Apache/2.4.7 (Ubuntu) Server at example.com Port 443”

I have had the same issue before and spent hours when it ended up being something very simple. I have LetsEncrypt installed. Below are my 000-default.conf, .htaccess, and 000-default-le-ssl.conf. Can someone please show me what I am doing wrong…


<!-- 000-default.conf -->

<VirtualHost *:80>
	    
    ServerName example.com
    Redirect permanent / https://example.com/
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html
    
    ScriptAlias /cgi-bin/ /var/cgi-bin/
        <Directory "/var/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Require all granted
         </Directory>
    
    <Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all                
    </Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined   
    
</VirtualHost>

<VirtualHost *:80>
    ServerName www.example.com
    Redirect permanent / https://example.com/
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

the following is 000-default-le-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>
    
    ServerName example.com
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html
    
    ScriptAlias /cgi-bin/ /var/cgi-bin/
        <Directory "/var/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Require all granted
         </Directory>
    
    <Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
    
SSLCertificateFile /etc/letsencrypt/live/example.com-0001/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com-0001/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/example.com-0001/chain.pem
</VirtualHost>
</IfModule>

And the .htaccess file

<IfModule mod_rewrite.c>
RewriteEngine On 
RewriteBase /var/www/html
RewriteRule ^ajax/search$ ajax_search.php
RewriteRule ^signup$ signup.php
RewriteRule ^ajax/check_username$ ajax_check_username.php
RewriteRule ^logout$ logout.php
RewriteRule ^login$ login.php
RewriteRule ^lost$ lost.php
RewriteRule ^confirm$ confirm.php
RewriteRule ^mail/inbox$ inbox.php
RewriteRule ^mail/read$ read.php
RewriteRule ^mail/compose$ compose.php
RewriteRule ^mail/outbox$ outbox.php
RewriteRule ^requests$ requests.php
RewriteRule ^videos$ videos.php
RewriteRule ^myvideos$ myvideos.php
RewriteRule ^categories$ categories.php
RewriteRule ^albums$ albums.php
RewriteRule ^community$ community.php
RewriteRule ^users$ users.php
RewriteRule ^resetpassword/(.*) resetpassword.php?code=$1
RewriteRule ^confirmemail/(.*) confirmemail.php?code=$1
RewriteRule ^user/(.*)/(.*)/blog/(.*) memberblog.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/blog memberblog.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/albums/(.*) memberalbums.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/albums memberalbums.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/favorite/photos/(.*) memberfavphotos.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/favorite/photos memberfavphotos.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/favorite/videos/(.*) memberfavvideos.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/favorite/videos memberfavvideos.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/videos/public/(.*) memberpubvideos.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/videos/public memberpubvideos.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/videos/private/(.*) memberprivideos.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/videos/private memberprivideos.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/friends/(.*) memberfriends.php?pid=$1&username=$2&etc=$3
RewriteRule ^user/(.*)/(.*)/friends$ memberfriends.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/subscribers/(.*) membersubscribers.php?pid=$1&username=$2&etc=$3
RewriteRule ^user/(.*)/(.*)/subscribers$ membersubscribers.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/wall memberwall.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/subscriptions/(.*) membersubscriptions.php?pid=$1&username=$2&etc=$3
RewriteRule ^user/(.*)/(.*)/subscriptions$ membersubscriptions.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/playlist/(.*) memberplaylist.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/playlist memberplaylist.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*) memberprofile.php?pid=$1&username=$2
RewriteRule ^ajax/insert_favorite_photos$ ajax_insert_favorite_photos.php
RewriteRule ^ajax/insert_my_photos$ ajax_insert_my_photos.php
RewriteRule ^ajax/insert_playlist_videos$ ajax_insert_playlist_videos.php
RewriteRule ^ajax/insert_my_videos$ ajax_insert_my_videos.php
RewriteRule ^ajax/insert_favorite_videos$ ajax_insert_favorite_videos.php
RewriteRule ^upload$ upload.php
RewriteRule ^upload/video$ uploadvideo.php
RewriteRule ^upload/photo$ uploadphoto.php
RewriteRule ^edit$ edit.php
RewriteRule ^prefs$ prefs.php
RewriteRule ^avatar$ avatar.php
RewriteRule ^album/edit/(.*) editalbum.php?aid=$1
RewriteRule ^album/addphotos/(.*) addphotosalbum.php?aid=$1
RewriteRule ^album/delete/(.*) deletealbum.php?aid=$1
RewriteRule ^album/slideshow/(.*) slideshow.php?aid=$1
RewriteRule ^album/(.*)/(.*) viewalbum.php?aid=$1&page=$2
RewriteRule ^ajax/album_cover$ ajax_album_cover.php
RewriteRule ^photo/(.*)/(.*) viewphoto.php?pid=$1&page=$2
RewriteRule ^video/(.*)/(.*) playvideo.php?videoid=$1&page=$2
RewriteRule ^ajax/rate_video$ ajax_rate_video.php
RewriteRule ^ajax/rate_photo$ ajax_rate_photo.php
RewriteRule ^ajax/favorite_video$ ajax_favorite_video.php
RewriteRule ^ajax/favorite_photo$ ajax_favorite_photo.php
RewriteRule ^ajax/flag_video$ ajax_flag_video.php
RewriteRule ^ajax/flag_photo$ ajax_flag_photo.php
RewriteRule ^ajax/share_video$ ajax_share_video.php
RewriteRule ^ajax/share_photo$ ajax_share_photo.php
RewriteRule ^ajax/photo_comment$ ajax_photo_comment.php
RewriteRule ^ajax/photo_pagination$ ajax_photo_pagination.php
RewriteRule ^ajax/photo_comment_delete$ ajax_photo_comment_delete.php
RewriteRule ^ajax/video_comment_delete$ ajax_video_comment_delete.php
RewriteRule ^ajax/wall_comment_delete$ ajax_wall_comment_delete.php
RewriteRule ^ajax/report_spam$ ajax_report_spam.php
RewriteRule ^ajax/remove_photo_favorite$ ajax_remove_photo_favorite.php
RewriteRule ^ajax/upload_progress$ ajax_upload_progress.php
RewriteRule ^search$ search.php
RewriteRule ^ajax/related_videos$ ajax_related_videos.php
RewriteRule ^ajax/video_comment$ ajax_video_comment.php
RewriteRule ^ajax/video_pagination$ ajax_video_pagination.php
RewriteRule ^ajax/video_comment_delete$ ajax_video_comment_delete.php
RewriteRule ^ajax/remove_video_playlist$ ajax_remove_video_playlist.php
RewriteRule ^ajax/remove_video_favorite$ ajax_remove_video_favorite.php
RewriteRule ^ajax/wall_comment$ ajax_wall_comment.php
RewriteRule ^ajax/wall_pagination$ ajax_wall_pagination.php
RewriteRule ^ajax/subscribe$ ajax_subscribe.php
RewriteRule ^ajax/unsubscribe$ ajax_unsubscribe.php
RewriteRule ^ajax/block_user$ ajax_block_user.php
RewriteRule ^ajax/unblock_user$ ajax_unblock_user.php
RewriteRule ^ajax/report_user$ ajax_report_user.php
RewriteRule ^ajax/invite_friend$ ajax_invite_friend.php
RewriteRule ^ajax/send_message$ ajax_send_message.php
RewriteRule ^ajax/rate_user$ ajax_rate_user.php
RewriteRule ^ajax/remove_friend$ ajax_remove_friend.php
RewriteRule ^ajax/accept_friend$ ajax_accept_friend.php
RewriteRule ^ajax/reject_friend$ ajax_reject_friend.php
RewriteRule ^ajax/category_videos$ ajax_category_videos.php
RewriteRule ^ajax/users$ ajax_users.php
RewriteRule ^ajax/blog_comment$ ajax_blog_comment.php
RewriteRule ^ajax/blog_pagination$ ajax_blog_pagination.php
RewriteRule ^ajax/blog_comment_delete$ ajax_blog_comment_delete.php
RewriteRule ^blog/add$ blog_add.php
RewriteRule ^blog/edit/(.*)/(.*) blog_edit.php?bid=$1&title=$2
RewriteRule ^blog/delete/(.*) blog_delete.php?bid=$1
RewriteRule ^blog/(.*)/(.*) viewblog.php?bid=$1&title=$2
RewriteRule ^ajax/blog_preview$ ajax_blog_preview.php
RewriteRule ^blogs$ blogs.php
RewriteRule ^invite$ invite.php
RewriteRule ^feedback$ feedback.php
RewriteRule ^static/faq$ faq.php
RewriteRule ^static/terms$ terms.php
RewriteRule ^static/privacy$ privacy.php
RewriteRule ^static/dmca$ dmca.php
RewriteRule ^static/_2257$ 2257.php
RewriteRule ^static/webmasters$ webmasters.php
RewriteRule ^static/advertise$ advertise.php
RewriteRule ^notices$ notices.php
RewriteRule ^notice/(.*)/(.*) viewnotice.php?nid=$1&title=$2
RewriteRule ^ajax/notice_comment$ ajax_notice_comment.php
RewriteRule ^ajax/notice_pagination$ ajax_notice_pagination.php
RewriteRule ^ajax/notice_comment_delete$ ajax_notice_comment_delete.php
RewriteRule ^blocks$ blocks.php
RewriteRule ^delete$ delete.php
RewriteRule ^download/video/(.*)/(.*) downloadvideo.php?VIDEOID=$1&title=$2
RewriteRule ^rss$ rss.php
RewriteRule ^photos$ photos.php
</IfModule>

<IfModule mod_security.c> 
   # Turn off mod_security filtering. 
   SecFilterEngine Off 

   # The below probably isn't needed, 
   # but better safe than sorry. 
   SecFilterScanPOST Off 
</IfModule>



This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

I was able to figure out what I was doing wrong and everything is working perfectly now. Cheers.

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.